拉拉威尔雄辩的多对多关系的深层次条件



我有两个名为ProductCategory的模型。管理员可以更改ProductCategory的状态。这里CCD_ 5和CCD_。因此,所有Product可以属于多个Category

现在在我的用户面板上,我想显示所有Product,其所有Category的状态都是活动的。

您可以在您的产品型号中执行此操作

public function categories(){
return $this->belongsToMany(Category::class, CategoryProduct::class, 'product_id', 'category_id');
//->withPivot([]); if you need anything from the pivot table for any reason you can add the column names in the array
}

这是假设透视表具有product_id和category_id列

$products = Product::with('categories')
->whereHas('categories', function ($query) {
$query->where('categories.status', 'active');
})
->get();

单词类别的内部是表名

解决方案是:

$products = Product::with('category')
->whereHas('category', function ($query) {
$query->where('status', 'active'); // use your column & condition
})
->get();

它对我有效,使所有类别都处于活动状态的所有产品。第一次我觉得很复杂,所以没有解决。

$products = Product::whereDoesntHave('catagories',function($category){
$category->where('status','!=',1);
});

相关内容

  • 没有找到相关文章

最新更新