有3种型号:
Products belongstoMany Categories
Products belongstoMany Stores
Categories belongstoMany Products
Stores belongstoMany Products
如何查找属于特定类别和特定商店的所有产品?
这是我尝试过的:
Product::getAll()->join('categorie_product', 'categorie_product.product_id', '=', 'product.id')
->join('categorie', 'categorie.id', '=', 'categorie_product.categorie_id')
->where('categorie.name', '=', $categorieName)
->paginate(10);
有什么建议吗?感谢..
P.S。:我想用口才来完成这项任务。 DB :: *会做,但我需要雄辩的实现,因为我正在使用Dingo API来完成一些REST API。
答案 0 :(得分:2)
使用whereHas
按关系过滤:
Product::with('categorie','store')->whereHas('categorie', function($q) use ($categoryName){
$q->where('categories.name', $categoryName);
})->whereHas('store', function($q) use ($storeId){
$q->where('stores.id', $storeId);
})->paginate(10);
使用with()