-2

'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()を呼び出す

したがって、問題の解決策は、2番目のモデル(サブタスク)にバインドして、それを検索に使用できるようにすることです。しかし、私はそれを行う方法がわかりません。

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 に答える