Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/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
Magento Laravel:如何通过关系过滤有说服力的数据_Magento_Laravel_Eloquent_Layered Navigation - Fatal编程技术网

Magento Laravel:如何通过关系过滤有说服力的数据

Magento Laravel:如何通过关系过滤有说服力的数据,magento,laravel,eloquent,layered-navigation,Magento,Laravel,Eloquent,Layered Navigation,我正在laravel建立一个产品目录,我想根据它们的属性过滤产品 我有两个表,产品和属性。属性具有键、值和产品标识。例如: product_id - key - value 12 - brand - BestBrandEver 23 - brand - EvenBetterBrand 现在,我希望能够通过分类页面上的一个表单过滤我的产品,该表单传递查询字符串参数,如“brand=BestBrandEver或brand=evenberterbrand”,并仅检

我正在laravel建立一个产品目录,我想根据它们的属性过滤产品

我有两个表,产品和属性。属性具有键、值和产品标识。例如:

product_id - key   - value
12         - brand - BestBrandEver
23         - brand - EvenBetterBrand
现在,我希望能够通过分类页面上的一个表单过滤我的产品,该表单传递查询字符串参数,如“brand=BestBrandEver或brand=evenberterbrand”,并仅检索该品牌的产品。最后,我想做同样的颜色,材料等。。。这很像Magento或Woocommerce的分层导航

我现在被困了一段时间,因为我不知道如何以正确的方式开始构建它。有没有人可以帮我做这件事,或者可以给我指出正确的方向(甚至可以通过教程或视频)


提前谢谢

假设url是这样的:

/products?filters[brand][]=a&filters[brand][]=b&filters[color][]=a&filters[color][]=b
等等


使用
whereHas
方法根据产品属性限制产品:

Product::whereHas('attributes',function($query){
foreach(输入::get('filters')为$key=>$value){
$query->orWhere(函数($query)使用($key,$value){
$query->where('key',$key)->其中('value',$value);
});
}
});

阅读文档或Dayle-Reese的文档可能会让你快速了解雄辩的关系:@SaintGenius不会以任何方式贬低Dayle的工作,但你链接的内容有点过时,在这种情况下没有真正的帮助。这里没有关于
where has
的词,这正是OP需要的。不是答案,是的。看情况而定,没有帮助。对于新用户来说,这是一篇很好的文章,可以让他们进入雄辩的流程,或者至少我是这么认为的。这并不是说我是一名专家,但我知道我在雄辩方面的方法。更让我烦恼的是这个问题背后的想法。解决它的逻辑。例如,许多电子商务网站都有一个属性过滤器,显示过滤后剩下多少具有该属性的产品。例如,此荷兰站点:。他们有这样一个属性过滤系统,这就是我想要构建的。问题是我不知道从哪里开始。。。