使用透视表按类别id获取产品



我有一个函数,我在其中传递类别id,并在此基础上获取所有产品。

这是我的数据库的结构

类别数据库:

category_name

产品数据库:

product_name;

类别_产品:

category_id;
product_id;

以下是它们之间的关系

产品中:

public function categories()
{
return $this->belongsToMany(Category::class);
}

类别:

public function products()
{
return $this->belongsToMany(Product::class);
}

我测试了多个查询,但对我的案例没有任何作用。

你可以用两种不同的方法

间接方式验证类别存在(2个查询(

$category = Category::with('products')->findOrFail($categoryId);
// you can also do without the with(); only one id, so no benefit for the eager load
// $category = Category::findOrFail($categoryId);
$products = $category->products;

直接方式,如果类别不存在(但没有消息((1个查询(,维奇将返回一个空集合

$products = Product::whereHas('categories', function($qbCategory) use($categoryId) {
$qbCategory->where('id',$categoryId);
})->get();

相关内容

  • 没有找到相关文章

最新更新