获取与Posts模型关联的Slugs的值contain
。我想按照检索到的Slugs表的ID对它们进行排序。
在Posts控制器中
/**
* Index method
*
* @return \Cake\Http\Response|null|void Renders view
*/
public function index()
{
$this->paginate = [
'limit' => 10,
'contain' => ['Slugs'],
'order' => [
'Slugs.id' => 'desc',
],
];
$posts = $this->paginate($this->Posts);
$this->set(compact('posts'));
}
检索到的值将按ID的降序(升序)显示。
ID按降序排列。
检查dd($posts)
中$posts
值的内容。
0 => App\Model\Entity\Posts {#163 ▼
#_accessible: array:6 [▶]
#_fields: array:6 [▶]
// ....
id: 1
title: "CakePHP"
user_id: 1
created: Cake\I18n\FrozenTime @1613560300 {#164 ▶}
modified: Cake\I18n\FrozenTime @1613560300 {#195 ▶}
users: array:2 [▼
0 => App\Model\Entity\Slug {#213 ▼
// ...
id: 1
name: "PHP7.2"
[new]: false
// ...
}
1 => App\Model\Entity\Slug {#224 ▼
id: 2
name: "CakePHP4"
// ...
我已经尝试了以下方法
'order' => [
'Posts.Slugs.id' => 'desc',
],
或
$posts = $this->paginate($this->Posts->find()->order(['Slugs.id']);
如何才能获得最佳效果?
1条答案
按热度按时间kuhbmx9i1#
因此,一个帖子有很多Slug,当你在分页中加载帖子(按帖子中的某个字段排序)时,你希望这些帖子中的Slug按id排序?你应该可以通过containment中的
queryBuilder
参数来实现这一点: