如何通过雄辩的关系来获得根父母名单laravel

时间:2018-11-23 13:44:25

标签: php laravel eloquent

我在laravel中赌了一件事。我的数据库种类繁多,包括产品,类别和地区。

产品

  • id
  • category_id
  • region_id

类别

  • id
  • parent_id = category.id;如果是root,则为0

地区

  • id
  • parent_id = region.id,如果是root,则为0

我必须获取所有连接到特定类别的根区域。我看到的唯一解决方案就是这样做

$products = Category::products->all();
$rootCategories = [];
foreach($products as $product){
 $rootCategories[] = $product->region->ultimateParent(); //Region::ultimateParent();
}

您认为有什么更雄辩的方法可以解决它?

1 个答案:

答案 0 :(得分:0)

您必须使用join,例如:

$query=DB::table('products')
       ->join('categorie','products.catagory_id','=','catagories.id')
       ->join('region','products.region_id','=','region.id')
       ->select('products.*','catagories.*',region.*'
       ->get();

此查询将为您提供所有3个表中的所有字段。