-2

我知道如何使用“订单”选项对主要模型进行排序。但是如何对关联数据进行排序呢?

好的,我试过这个:

$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()

所以解决这个问题的方法可能是绑定第二个模型(子任务),这样我就可以用它来查找了。但我不知道该怎么做。

4

1 回答 1

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
                           );
于 2012-07-30T13:07:20.293 回答