Laravel Eloquent and Multiple Joins

后端 未结 2 1724
梦如初夏
梦如初夏 2020-12-08 23:51

I understand how to use Eloquent for basic queries and relationships, but I start getting confused when selecting information based on relationships in multiple tables.

2条回答
  •  执笔经年
    2020-12-09 00:28

    Assuming your relations are correct and related table names are: categories and types, this will do the job:

    Product::with('productdetails')
        ->whereHas('categories', function ($query) use ($submenu_id) {
              $query->where('categories.id', '=', $submenu_id);
        })
        ->whereHas('types', function ($query) use ($type_id) {
              $query->where('types.id', $type_id); // side note: operator '=' is default, so can be ommited
        })
        ->get();
    

    It will run 2 queries ( first for getting appropriate products, second for product details related to them) and return Eloquent Collection

提交回复
热议问题