1

CakePHPの検索操作でのorderByに関する簡単な質問が1つだけあります。3つのモデルが相互に関連付けられているとしましょう。3つのモデルのいずれかでfind('all')cakePHPクエリを実行すると、他の2つのモデルのデータも含む結果が得られます。たとえば、私のモデルが次のようになっているとします。

1- User
2- School
3- Country

$this->find('all')内部で行うUsersControllerと、3つのモデルがリンクされているため、次のようになります。

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'
                     )
         )
)

私の質問はこれですが、私のfind('all')クエリはモデルで開始されましたが、たとえばモデルのフィールドを言うUserことは可能ですか?orderBycreatedSchool

それが可能かどうか教えてください

ありがとうございました

4

1 に答える 1

1

User、School、Countryからすべての関連データを取得しようとしているが、School.created(例に従って)並べ替える場合は、Schoolモデルからクエリを実行できます。

私はあなたがユーザーズコントローラーにいると仮定します-もしそうなら、それはただこれでしょう:

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

(学校モデルはリンクされているため、ロードする必要はありません。したがって、ユーザーモデルを介して参照するだけです)

于 2012-02-28T20:48:23.633 に答える