Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按供应商列出的产品类别-laravel_Php_Mysql_Laravel - Fatal编程技术网

Php 按供应商列出的产品类别-laravel

Php 按供应商列出的产品类别-laravel,php,mysql,laravel,Php,Mysql,Laravel,我正在开发一个类似MySQL电子商务的Laravel网站,我可以按供应商/商店显示其类别下的所有产品 但问题是,如果我在同一类别下添加了一个产品,它也会向其他同样拥有该类别的供应商显示,这不应该发生 我的问题是: $categories = Categories::with('products') ->whereHas('products', function ($query) use ($id) { $query->where('store_id' ,$id); }

我正在开发一个类似MySQL电子商务的Laravel网站,我可以按供应商/商店显示其类别下的所有产品

但问题是,如果我在同一类别下添加了一个产品,它也会向其他同样拥有该类别的供应商显示,这不应该发生

我的问题是:

$categories = Categories::with('products')
    ->whereHas('products', function ($query) use ($id) {
    $query->where('store_id' ,$id);
})
->get();
我想问题出在
部分?但我不知道该怎么做

数据库结构:

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);
}])

谢谢你的回答mrhn,我会尝试这个,并尽快更新你。我在你的回答中添加了用法($id)。现在它正在按预期工作!非常感谢@mrhnofc,有点快:)谢谢蒂姆·刘易斯,我更新了我的问题。