Products belongsToMany Categories
和Categories hasMany Products
,在我的Product
视图中,我显示了它的所有类别的列表,但我希望对这些结果进行分页或限制。
我在ProductsController
上的当前代码是:
$product = $this->Products
->findBySlug($slug_prod)
->contain(['Metas', 'Attachments', 'Categories'])
->first();
$this->set(compact('product'));
我知道我需要设置$this->paginate()
来分页,但是我不能让它对产品中的类别分页。我希望你们能理解我。
更新:目前我有这个正在进行:
$product = $this->Products->findBySlug($slug_prod)->contain([
'Metas',
'Attachments',
'Categories' => [
'sort' => ['Categories.title' => 'ASC'],
'queryBuilder' => function ($q) {
return $q->order(['Categories.title' => 'ASC'])->limit(6);
}
]
])->first();
限制有效,但我还不知道如何分页
1条答案
按热度按时间7kqas0il1#
分页器不支持对关联进行分页,您必须在一个单独的查询中手动读取关联的记录,并对该记录进行分页,沿着所示:
然后,在视图模板中,您可以显示您的
$product
,并像往常一样单独为$categories
分页。另请参阅
*Cookbook〉数据库访问和ORM〉查询生成器〉按关联数据筛选