[Risolto] Popolare Una Clistview Da Tabelle Incrociate...

Ciao, scusate se in questo periodo posterò un po’ di domande, ma mi sono avvicinato a YII e sto cercando di capirne il funzionamento; fra manuali e documentazione on line sto friggendo :)

Sto cercando di visualizzare i dati provenienti da più tabelle in una CListView; Una tabela principale “Annunci” che contiene numerosi campi sotto forma di ID e altre tabelle che contengono le varie specifiche collegate alla “Annunci” per l’ID (tipologia annuncio, autore annuncio, ecc…).

Ho scritto le relazioni nel model Annunci.php e fino a che si è trattato di recuperare il nome descrittivo corrispondente all’ID che ho recuperato dalla tabella esterna di appoggio nel caso delle BELONGS_TO, tutto bene.

Ora il problema è una tabella collegata “Immagini”, la relazione fra Annunci e Immagini è 1:N (HAS_MANY). Io vorrei generare un elenco di annunci con la ClistView dove ogni annuncio abbia anche almeno una immagine se esiste. Questa immagine deve essere recuperata fra le immagini associate a quell’annuncio nella tabella “Immagini” ed è quella che ha impostato il valore “predefinita = 1”.

Come posso riuscirci utilizzando la CListView? Essa prende come entità dataProvider per generare il suo output sfruttando la _view.php per la formattazione…ma mi sembra di capire che dataprovider si alimenta da un solo modello "Annunci" mentre nel mio caso dovrebbe prendere anche i dati dal modello "Immagini".

Qualcuno sa indicarmi come fare? Quantomeno da dove partire perchè ci ho provato in più modi ma ho sempre fallito…scusate se non mi sono spiegato benissimo ma spero di essermi fatto capire…

Grazie

R.

Ho risolto la questione.

Per ottenere quello che volevo la relazione nel Model non doveva essere HAS_MANY ma HAS_ONE, di questo tipo:

‘relazione’ => array(self::HAS_ONE, ‘model’, ‘key’, ‘condition’ => ‘predefinita=1’)

Ciao