2012-02-28 4 views
1

juste une petite question à propos de orderBy dans cakePHP trouver des opérations. Disons que j'ai 3 modèles associés les uns aux autres. Quand je fais une requête find('all') cakePHP sur l'un de mes 3 modèles, j'obtiens les résultats qui incluent également les données des 2 autres modèles. Par exemple, disons que mes modèles sont:ordre cakephp par un autre champ de modèle en association

1- User 
2- School 
3- Country 

Si je $this->find('all') l'intérieur UsersController, parce que mes trois modèles sont liés ensemble, je vais faire quelque chose comme ceci:

Array 
(
    [0] => Array 
     (
       [User] => Array 
        (
          [id] => 'the_auto_incrementing_id' 
          // other table columns 
          [created] 'creation_date' 
          [modified] 'modification_date' 
        ) 
       [School] => Array 
        (
          [id] => 'the_auto_incrementing_id' 
          // other table columns 
          [created] 'creation_date' 
          [modified] 'modification_date' 
        ) 
       [Country] => Array 
        (
          [id] => 'the_auto_incrementing_id' 
          // other table columns 
          [created] 'creation_date' 
          [modified] 'modification_date' 
        ) 
     ) 
) 

Ma question est, bien que ma requête find('all') a été lancée sur le modèle User, est-il possible de orderBy disons le champ created dans le modèle School par exemple?

S'il vous plaît laissez-moi savoir si cela est possible du tout

Merci

Répondre

0

Si vous essayez d'obtenir toutes les données connexes de l'utilisateur, l'école, et le pays, mais trier par School.created (par votre exemple), vous pouvez simplement exécuter la requête à partir du modèle School.

Je suppose que vous êtes dans le contrôleur Users - le cas échéant, ce serait juste être ceci:

$myData = $this->User->School->find('all', array('order'=>'School.created DESC')); 

(pas besoin de charger le modèle de l'école, car il est lié, - donc vous un juste reportez-vous à travers le modèle de l'utilisateur)

Questions connexes