php - 按供应商分类的产品类别 - laravel
问题描述
我正在开发一个带有 MySQL 电子商务网站的 Laravel,我可以按供应商/商店显示其类别下的所有产品。
但问题是,如果我在同一类别下添加了一个产品,它也会向同样拥有该类别的其他供应商显示,这不应该发生。
我的查询:
$categories = Categories::with('products')
->whereHas('products', function ($query) use ($id) {
$query->where('store_id' ,$id);
})
->get();
我认为问题出在with
部分?但我不知道该怎么做。
数据库结构:
store
id | name
products
id | store_id | category_id | name
categories
id | name
解决方案
WhereHas()
检查它是否有它,但不过滤结果。该商店是否有产品,如果是,则返回您现在包含未过滤产品的所有类别。
有一个数组语法,用于过滤with()
调用。这将正确显示产品。
Categories::with(['products' => function ($query) use ($id) {
$query->where('store_id' ,$id);
}])
推荐阅读
- android - windowSoftInputMode=“adjustResize”在我的活动中不起作用
- amazon-web-services - 跨 ec2 实例和 Api 网关的 AWS 负载平衡
- azure-devops - TFS Rest API 2018:如何通过 TestManagementHttpClient 查询 SharedSteps 和 TestCase
- extjs - Shopware - Extjs - 如何获取表格元素的值?
- sql-server - 将存储过程参数插入表仅插入第一个字母
- python - python中的三向字典深度合并
- php - 如何修复 Nginx 上的 CORS?
- javascript - 如何在javascript函数中提交表单?
- perl - 用两个数组做一个散列,一个散列有一个数组值的键
- java - JTable 只在一列中显示所有记录(数据)?