La comunità italiana su CakePHP

You are not logged in. Please login or register.


Pages: 1

Atom RSS

Posts [ 8 ]

by_spix

Topic: Combo box con array da tabella esterna

Scusate la mia ignoranza, volevo aggiungere nella pagina di aggiunta record su una tabella A una combo che richiamasse tutti i nomi da un'altra tabella B, quindi devo portarmi nella vista add l'array con questi valori. Come devo muovermi?
Devo agire sul controller di A all'interno del function add(), ma come?roll

Luizz

Re: Combo box con array da tabella esterna

1) Crei una lista di tutti i record della tabella B nel controller e la assegni a una varibile
2) Utilizzi la variable nella vista per costruire la combo

Se utilizzi le convenzioni di Cake e stabilisici una relazione tra i model delle tabelle, utilizzando $html->input ottieni "automagicamente" la select

Fai riferimento a Model::find per il controller e al FormHelper::select  per la view

by_spix

Re: Combo box con array da tabella esterna

mmmhhh, ho utilizzato rutte le convenzioni di cake e stabilito le relazioni ma qualcosa non va.
Interpretando come dici ho aggiunto una variabile $lista nel controller di Players (tabella B da cui pescare i valori per popolare la combo)

class PlayersController extends AppController {
        
    var $name = 'Players';
        var $lista = $this->set('Players', $this->Player->findAll());
...
}

Nella vista views\games_players\add.ctp (GamesPlayer fa riferimento alla mia tabella A) gli ho piazzato print_r ($lista) per visionare l'array ma mi dice variabile non definita.
hmm

Saiborg

Re: Combo box con array da tabella esterna

Hai fatto un po' di confusione. Proviamo a risolvere un passo alla volta.
Se hai settato le relazioni nei modelli allora nel controller GamesPlayersController dovresti poter accedere al modello Player così:
$this->GamesPlayer->Player

quindi puoi recuperare i dati che ti servono dalla funzione add di GamesPlayersController:

class GamesPlayersController extends AppController {
 ...
 function add()
 {
   $this->set('lista', $this->GamesPlayer->Player->find( ) );
 } 
 ...
}

in questo modo nella vista add che volevi (views/games_players/add.ctp) hai una variabile $lista contenente i risultati

by_spix

Re: Combo box con array da tabella esterna

finalmete! grazie mille, funge e ho capito un paio di cose smile

by_spix

Re: Combo box con array da tabella esterna

scusate, giusto per completare l'opera ...e se volessi portarmi dentro il controller i risultati di una tabella che non ha relazioni con nulla?

Saiborg

Re: Combo box con array da tabella esterna

Nel controller setti la variabile $uses che determina quali modelli vengono caricati. Di default se non la setti carica il modello con lo stesso nome (al singolare) del controller, ma se ti servono altri modelli puoi fare:

class NomeController extends AppController {
 $uses = array("Model1", "Model2", "Model3", .....);

 function nomeAction()
 {
  // per accedere ai modelli si fa sempre nello stesso modo
  $this->Model1-> ...
  $this->Model2->
  $this->Model3
 }
}

by_spix

Re: Combo box con array da tabella esterna

Ok, all'inizio non funzionava, poi ho aggiunto negli elementi della variabile $uses anche il modello prima implicito cui faceva riferimento il controller e ora va. Inoltre con questa inclusione tutte le classi prima precaricate bisogna dichiararle esplicitamente. Mi ha aiutato questa pagina
http://manual.cakephp.org/it/view/53/co … ers-e-uses
grazie:cool:

Posts [ 8 ]

Guest posting is disabled. You must login or register to post a reply.

Pages: 1

Topic info

0 guests and 0 users are reading this topic now


Forum quick jump menu

Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB

[ Generated in 0.050 seconds, 12 queries executed ]