- Title: Member
- Status: Offline
- From: Pavia
- Registered: 22-07-2008
- Posts: 29
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?
- Title: Member
- Status: Offline
- From: Rome
- Registered: 05-02-2008
- Posts: 39
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
- Title: Member
- Status: Offline
- From: Pavia
- Registered: 22-07-2008
- Posts: 29
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.

- Title: Administrator
- Status: Offline
- From: Padova
- Registered: 04-02-2008
- Posts: 46
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
- Title: Member
- Status: Offline
- From: Pavia
- Registered: 22-07-2008
- Posts: 29
Re: Combo box con array da tabella esterna
finalmete! grazie mille, funge e ho capito un paio di cose 
- Title: Member
- Status: Offline
- From: Pavia
- Registered: 22-07-2008
- Posts: 29
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?
- Title: Administrator
- Status: Offline
- From: Padova
- Registered: 04-02-2008
- Posts: 46
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
}
}
- Title: Member
- Status: Offline
- From: Pavia
- Registered: 22-07-2008
- Posts: 29
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.
Topic info
1 guests and 0 users are reading this topic now
Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB