Order + Relations

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!

  • tune -

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’.

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.