本文介绍了使用laravel从数据透视表中搜索的最佳方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用laravel从数据透视表中搜索.
Searching from pivot table using laravel.
这是我的表结构:
Product
id
name
Categories
id
name
product_category (Pivot table)
id
category_id
product_id
//products can have multiple categories
产品型号:
public function categories(){
return $this->belongsToMany(Category::class, 'product_category');
}
按类别ID搜索所有产品的最佳方法是什么?目前,我正在这样做,这似乎不是一种有效的方法:
What is the best way to search all products by category id?Currently I am doing this way, and it seems not an efficient way:
//Controller
$categories = product_category::where('category_id',1)->get();
现在我必须遍历类别,然后获取产品"并将其传递给视图?知道如何有效地做到这一点吗?
Now I have to loop through categories and then get Products and pass it to views? Any idea how to do this in an efficient way?
推荐答案
为此,您可以使用 whereHas()方法:
For this you could use the whereHas() method:
$categoryId = 1;
$products = Product::whereHas('categories', function ($query) use($categoryId) {
$query->where('id', $categoryId);
})->get();
上面的代码将返回ID等于$categoryId
的类别"中的所有产品.
The above will return all products that are in the Category where the id is equal to $categoryId
.
这篇关于使用laravel从数据透视表中搜索的最佳方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!