gpt4 book ai didi

php - 按关联模型与 HasMany 关系 CakePHP 3 排序

转载 作者:行者123 更新时间:2023-12-02 09:17:03 24 4
gpt4 key购买 nike

  • 帖子有很多评论

评论(id,标题,内容,is_main)。每篇帖子至少有一条评论,并且必须有一条评论为主(只有1条评论为主)

我需要按主要的评论标题对帖子进行排序,但按虚拟字段排序似乎已在 Cake 3.x 中删除

Controller :

$query = $this->Post->find()->contain(["Comment"]);

模板:

Paginator->sort('comment', "Comment(s)") ?>

最佳答案

旧的虚拟字段概念已被删除,是的,但是定义计算列/选择自定义列是非常可能的,即使您尝试做的事情不一定需要。

鉴于只能有一条主要评论,您可以简单地留下您的评论(顺便说一句。它应该是评论帖子如果您愿意在该条件下遵循 CakePHP naming conventions ) 关联。

$this->paginate = [
// ...
'sortWhitelist' => [
// associations and computed columns must be whitelisted, and if
// you do that, the valid main model columns must be specified too
'id',
// ...
'Comments.title'
]
];

$query = $this->Posts
->find()
->leftJoinWith('Comments', function (\Cake\ORM\Query $query) {
return $query
->where(['Comments.is_main' => true]);
});

$posts = $this->paginate($query);
// in your view template

$this->Paginator->sort('Comments.title', 'Main Comment Title');

另请参阅

关于php - 按关联模型与 HasMany 关系 CakePHP 3 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46091656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com