如何对关联数据进行排序?

时间:2012-07-30 12:46:32

标签: php cakephp

我知道如何使用'order'选项对主模型进行排序。但是如何对关联数据进行排序?

好的,我试过了:

$task = $this->Task->read(null, $id, array('order' =>
        array('Subtask.completed ASC')
));

然后我发现read没有选项参数。所以我尝试为另一个模型设置一个变量,所以我可以在find方法中使用该选项:

$subtasks = $this->Subtask->find('all', array('conditions' => array(
        'Subtask.task_id' => $id),
        'order' => array('Subtask.completed ASC')
));

这给我带来了以下错误:

致命错误:在第54行的C:\ xampp \ htdocs \ taskExplorer \ app \ controllers \ tasks_controller.php中调用非对象的成员函数find()

因此问题的解决方案可能是在第二个模型(子任务)中绑定,因此我可以将它用于查找。但我不知道该怎么做。

1 个答案:

答案 0 :(得分:3)

试试这个:

$this->loadModel('Subtask');
$subtasks = $this->Subtask->find('all', array('conditions' => array(
    'Subtask.task_id' => $id),
    'order' => array('Subtask.completed ASC')
));

如果您在模型中定义了关系,那么您可以像以下一样访问它:

$subtasks = $this->Task->Subtask->find(
                             //rest of code
                           );