cakephp由另一个模型领域的联合命令

时间:2012-02-28 20:01:59

标签: php cakephp cakephp-1.3 sql-order-by model-associations

在cakePHP查找操作中只有一个关于orderBy的快速问题。假设我有3个相互关联的模型。当我在我的3个模型中的任何一个上进行find('all') cakePHP查询时,我得到的结果还包括来自其他2个模型的数据。例如,假设我的模型是:

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是否可以说模型created字段School 1}}例如?

如果可以的话,请告诉我

谢谢

1 个答案:

答案 0 :(得分:1)

如果您尝试从用户,学校和国家/地区获取所有相关数据,但按School.created排序(根据您的示例),则可以从学校模型运行查询。

我假设你在用户控制器中 - 如果是这样,那就是这样:

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

(无需加载学校模型,因为它已链接, - 所以你只需通过用户模型引用它)