2012-07-30 100 views
-2

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

好吧,我尝试这样做:

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

然后我发现读不有一个选项参数。所以,我想设置一个变量为其他模型,所以我可以使用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中的一个非对象上

因此,解决此问题的方法可能是绑定到第二个模型(Subtask)用它来查找。但我不知道该怎么做。

+3

这个可恶的诅咒施加某种......为什么,为什么一定要盲目地工作。 ..(也AKA,请张贴一些代码) – Utkanos 2012-07-30 12:47:57

+0

这个问题将关闭它的当前状态。添加一些代码并告诉我们你尝试了什么。 – piddl0r 2012-07-30 12:50:08

+0

请张贴一些代码,特别是对您面临的问题更具描述性。 – Izza 2012-07-30 12:51:10

回答

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 
          ); 
相关问题