2012-02-28 95 views
1

只是一個大約的OrderBy快速的問題CakePHP中找到操作。假設我有3個模型相互關聯。當我做任何我的3種型號的find('all') CakePHP的查詢,我得到的結果還包括來自其他2款機型的數據。例如,假設我的車型有:CakePHP的順序由另一個模型字段關聯

1- User 
2- School 
3- Country 

如果我做$this->find('all')UsersController,因爲我的三個型號都連在一起,我會得到這樣的:

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模型發起的,是有可能orderBy假設模型School例如created場?

請讓我知道這是不可能的

謝謝

回答

0

如果你正在試圖獲得來自用戶,學校和國家所有相關的數據,但排序School.created(按你的例子),你可以運行學校模型中的查詢。

我假設你在用戶控制器是 - 如果是這樣,只希望是這樣的:

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

(無需加載學校的模式,因爲它的鏈接, - 所以你的只是參考它通過用戶模型)