douyi4205
2019-01-07 14:08
浏览 39
已采纳

CakePHP 3.6.17:急于加载排序

I want to combine eager loading with sort by in cakephp 3.6

Ιn my controller I can use eager loading or sort by but I can't combine them. Here is my code:

Eager loading:

    $user = $this->Users->get($id, [
        'contain' => [ 'TasksTo' => ['ProjectStatus']]
    ]); 
    $this->set(compact('user'));

Sort:

    $user = $this->Users->get($id, [
        'contain' => ['TasksTo'  => ['sort' => ['TasksTo.priority' => 'ASC']]]); 
    $this->set(compact('user'));
}

both work as expected when used separately but not together. How I can combine them?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douluo1330 2019-01-16 07:38
    已采纳

    Well I fixed it like this:

    $user = $this->Users->get($id, [
        'contain' => ['TasksTo' => ['ProjectStatus', 'sort' => ['TasksTo.priority' => 'ASC']]]); 
    $this->set(compact('user'));
    
    打赏 评论
  • dsfb20227 2019-01-08 07:51

    Use dot notation. Assuming ProjectStatus is linked to TasksTo, try this:

    $user = $this->Users->get($id, [
        'contain' => ['TasksTo.ProjectStatus' => ['sort' => ['TasksTo.priority' => 'ASC']]]); 
    $this->set(compact('user'));
    
    打赏 评论

相关推荐 更多相似问题