我有两个名为Product
和Category
的模型。管理员可以更改Product
和Category
的状态。这里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);
});