tune
(Tunello)
August 29, 2012, 11:15am
1
Ciao ragazzi,
problema "semplice" per voi esperti…[spero] ;-]
parlando di Relations, ho bisogno che il risultato di una relations venga fuori con un certo ordinamento.
ora supponendo una relazione del tipo:
$utente->fkIdRuolo->ruoliCompitis->compito
mi escono fuori correttamente i compiti associati all’utente in esame, ma se io volessi ORDINARE tali compiti devo impostare nella relations della tabella che associa il ruolo ai compiti (ruoliCompitis) l’attributo aggiuntivo:
'fkIdCompito' => array(self::BELONGS_TO, 'Compiti', 'fk_id_compito','order'=>'fkIdCompito.priorita desc')
però non mi funziona.
cioè non è sufficiente specificare l’order nella “relations” per farmi venire fuori i risultati ordinati come voglio?
ps.ho letto in giro posts e documentazione…ma non riesco a ordinare.
grazie in anticipo!
sensorario
(Sensorario)
August 29, 2012, 11:18am
2
tune:
Ciao ragazzi,
problema "semplice" per voi esperti…[spero] ;-]
parlando di Relations, ho bisogno che il risultato di una relations venga fuori con un certo ordinamento.
ora supponendo una relazione del tipo:
$utente->fkIdRuolo->ruoliCompitis->compito
mi escono fuori correttamente i compiti associati all’utente in esame, ma se io volessi ORDINARE tali compiti devo impostare nella relations della tabella che associa il ruolo ai compiti (ruoliCompitis) l’attributo aggiuntivo:
'fkIdCompito' => array(self::BELONGS_TO, 'Compiti', 'fk_id_compito','order'=>'fkIdCompito.priorita desc')
però non mi funziona.
cioè non è sufficiente specificare l’order nella “relations” per farmi venire fuori i risultati ordinati come voglio?
ps.ho letto in giro posts e documentazione…ma non riesco a ordinare.
grazie in anticipo!
Questo è un pezzo di codice che ho pescato dalla documentazione.
class User extends CActiveRecord
{
public function relations()
{
return array(
'posts'=>array(self::HAS_MANY, 'Post', 'author_id',
'order'=>'posts.create_time DESC',
'with'=>'categories'),
'profile'=>array(self::HAS_ONE, 'Profile', 'owner_id'),
);
}
}
L’unica differenza che noto è che nel tuo caso manca l’attributo ‘with’.
tune
(Tunello)
August 29, 2012, 12:05pm
3
Grazie due volte!
1° per la risposta,
2° perchè era esattamente l’attributo che avevo dimenticato…
per completezza incollo l’esatto array della relazione:
'ruoliFunzionalitas' => array(self::HAS_MANY, 'RuoliFunzionalita', 'fk_id_ruolo',
'with'=>'fkIdFunzionalita',
'order'=>'fkIdFunzionalita.priorita desc'),
spiego:
la relazione concettualmente è di 4 "passaggi" e comprende 5 models…
utente -> ruoliUtente -> ruoli -> ruoliFunzionalita -> funzionalita
in pratica per avere le funzionalità ordinate secondo l’attributo “priorita” di funzionalita,
ho inserito nelle relations del model ruoli quindi al 2°passaggio dell’esempio sopra ,il with+order,dove in with ho specificato che doveva far riferimento alla relazione “finale” oovero fkIdFunzionalita.
ciao e gazie ancora.
Ottimo, sono contento di averti aiutato. Quando ricevi risposte da questo forum, ricordati di cliccare nel più in basso a destra.