我有兩個模型,名爲Post和Comment,它們通過Post鏈接有很多評論和評論belongsTo Post。 我想獲取每個前五個評論的所有帖子。我會用這個代碼:Cakephp 3 - 限制()和包含的模型
$this->Posts->find('all')
->contain([
'Comments' => function($q) {
return $q
->order('created ASC')
->limit(5);
}
]);
這個工作與limit()不正確。請幫忙解決這個問題。 我用這個例子: How to limit contained associations per record/group? 我試圖像這樣(在Post模型):
$this->hasOne('TopComments', [
'className' => 'Comments',
'strategy' => 'select',
'conditions' => function (\Cake\Database\Expression\QueryExpression $exp, \Cake\ORM\Query $query) {
$query->leftJoin(
['CommentsFilter' => 'comments'],
[
'TopComments.post_id = CommentsFilter.post_id',
'TopComments.created < CommentsFilter.created'
]);
return $exp->add(['CommentsFilter.id IS NULL']);
}
]);
在帖子控制器:
$this->Posts->find('all')
->contain([
'TopComments' => function($q) {
return $q
->order('TopComments.created ASC')
->limit(5);
}
]);
可惜,這是行不通的。我不知道我錯在哪裏。
的可能的複製[如何限制包含每個記錄/組關聯?](HTTP:/ /stackoverflow.com/questions/30241975/how-to-limit-contained-associations-per-record-group) – arilia