Ho 3 tabelle, diciamo ad esempio panino, ingrediente, ingrediente_panino.
Dentro panino uso la relation HAS_MANY su ingrediente_panino
Dentro ingrediente_panino, la relation BELONGS_TO su ingrediente
Nella tabella ingrediente, ho una colonna ‘ordine’, che dovrebbe stabilire l’ordine di visualizzazione degli ingredienti di tutti i panini. Quindi nel momento in cui l’ordine degli ingredienti cambia dentro ingrediente, quando visualizzo gli ingredienti di un panino, dovrebbero essere visualizzati con quell’ordine. E’ possibile farlo?
Il risultato riesco ad ottenerlo utilizzando sql, ma vorrei, se possibile, realizzarlo con le reletions, così da non dover modificare le varie viste.
Così a naso … credo che ti convenga dare un occhiata alla funzione criteria() dove puoi aggiungere una condizione, tipo (order by campo asc/desc), all’interno del $model
Ciao, grazie per i consigli! però io non volevo usare il CActiveDataProvider, ma sfruttare le relations.
Rimaniamo sempre sull’esempio del panino, dentro la view ho
$ingredienti = $istanza_panino->ingredienti_panino;
foreach($ingredienti as $ingrediente_panino)
echo $ingrediente_panino->ingrediente->nome
solo che l’ordine dovrebbe essere quello generico stabilito nella tabella ‘ingrediente’, non l’ordine dentro ingrediente_panino. Forse potrei ciclare l’array e riordinarmelo da me…
Ritengo comunque che l’approccio migliore sia dal CActiveProvider ricavare (con una riga di codice) il CArrayDataProvider e poi fare il foreach su quello…