2015-10-16 17 views
1

我有与类别相关的文章。我想每个类别至多得到两篇文章。有很多到一个连接。所以我使用以下。CakePHP 3如何限制每个项目中包含的项目数量不全局

$query = $categories->find()->contain([ 
    'Articles' => [ 
     'queryBuilder' => function ($q) { 
      return $q->limit(2); 
     } 
    ] 
]); 

不幸的是,限制2接缝是全球性的。我从第一类获得2篇文章,然后没有与其他类别连接的文章。

如何设置每个项目的限制而不是全局限制。

回答

0

试试custom finder

$query = $articles->find()->contain([ 
    'Authors' => [ 
      'finder' => 'limitedAuthors' 
     } 
    ] 
]); 

我还没有用过这个,所以不知道它是否进入文章或作者表。猜猜它在AuthorsTable中。

public function findLimtedAuthors(Query $query, $options) { 
    return $query->limit(2); 
} 
+0

它在3.1中不起作用。我编辑了一下我的问题 - 现在可以更清楚了 – ironbone

+0

尝试更新的答案。 – burzum

+0

不幸的是,这个限制仍然存在(就像我的例子)全局。 – ironbone

相关问题