Laravel分类多个类别的项目

时间:2014-11-07 14:01:51

标签: laravel eloquent query-builder paginate

我有2个表,产品和类别。产品属于不同的类别,并且类别以树结构形成,允许父类别和子类别关系。因此,给定一个特定类别,我应该如何编写查询以获取属于此类别及其所有子类别的分页产品?

我忘了提到在我的设置中,产品和类别有很多很多关系,有一个名为product_catrgory的数据透视表。

3 个答案:

答案 0 :(得分:1)

$ids = $category->children()->lists('id');

$ids[] = $category->id;

$products = Product::whereIn('category_id', $ids)->paginate(20);

答案 1 :(得分:0)

也许还有其他更好的方法,但你可以这样做:

$ids = [];

$ids[] = $category->id;

foreach ($category->children as $child) {
  $ids[] = $child->id;
}

$products = Product::whereIn('cat_id', $ids)->paginate(15);

答案 2 :(得分:0)

在我看来,最简单的方法是先递归获取类别ID及其所有子类别ID。并使用whereIn(类别ID数组)查询数据库以获取所有产品。我不认为你可以在一个查询中做到这一点。

相关问题