Reputation:
I need help.I have 2 tables products
and categories
:
Get request sends category id. My question is: how to build a query using the product model??? (The query looks like this: Output the product where the category id is equal to $ request-> category). Table connections are configured, I only need the query, (I read the documentation, but do not not understand it)
Upvotes: 1
Views: 2219
Reputation: 111829
You can use:
$products = Product::whereHas('categories', function($q) use ($categoryId) {
$q->where('id', $categoryId);
})->get();
Read about querying relationships
Of course you need to have configured Product
model with categories
relationship.
Upvotes: 4
Reputation: 163748
You've said it's many-to-many relationship, all relations are configured and you want to use Product
model to build a query. In this case, you should use the whereHas()
method:
Product::whereHas('categories', function($q) use($request) {
$q->where('id', $request->category);
}))->get();
Upvotes: 2