Laravel有很多人质疑

时间:2017-05-03 04:04:57

标签: laravel laravel-5 eloquent

所以我有一个products表和一个categories表以及一个pivot表。

产品products

- id

- 姓名

类别categories

- id

- 姓名

CategoryProduct category_product

- category_id

- product_id

我希望获得属于某个类别的所有产品,我已设法通过执行以下查询来获取它:

$products = Category::find(3)->products;

但是如何从产品型号中访问它?

$products = Product::?

1 个答案:

答案 0 :(得分:0)

您需要whereHas子句。 https://laravel.com/docs/5.4/eloquent-relationships#querying-relationship-existence

$products = Product::whereHas('categories', function ($query) {
    return $query->where('id', 3);
})->get();

或者你可以用连接代替它。

$products = Product::select('products.*')
    ->join('category_product', 'products.id', '=', 'category_product.product_id')
    ->where('category_product.category_id', 3)
    ->groupBy('products.id')
    ->get();