magento - Laravel:如何通过关系过滤 Eloquent 数据

标签 magento laravel eloquent layered-navigation

我正在 Laravel 中构建产品目录,我想根据产品的属性过滤产品。

我有 2 个表,产品和属性。属性有键、值和product_id。例如:

product_id - key   - value
12         - brand - BestBrandEver
23         - brand - EvenBetterBrand

现在,我希望能够通过类别页面上的表单过滤我的产品,该表单传递查询字符串参数,例如“brand=BestBrandEver 或brand=EvenBetterBrand”,并仅检索该品牌的产品。最终我想对颜色、 Material 等做同样的事情...这很像 Magento 或 Woocommerce 的分层导航。

我现在被困了一段时间,因为我不知道如何开始以正确的方式构建它。有没有人可以帮助我解决这个问题,或者能够为我指明正确的方向(甚至可能提供教程或视频)?

提前致谢!

最佳答案

假设网址如下:

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

等等...


使用 whereHas 方法通过属性限制您的产品:

Product::whereHas('attributes', function ($query) {
    foreach (Input::get('filters') as $key => $values) {
        $query->orWhere(function($query) use ($key, $values) {
            $query->where('key', $key)->whereIn('value', $values);
        });
    }
});

关于magento - Laravel:如何通过关系过滤 Eloquent 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27228200/

相关文章:

magento - 如何根据颜色和尺寸属性通过关联的产品图像更改可配置的产品主图像?

jquery - Magento Catalog_Products 在管理中使用 jQuery 拖放表格

database - Laravel 加载数据库

Laravel 反向路由的好处

php - 当我发送外键时,Laravel Eloquent 无法插入行?

php - 如何在 magento 单页结帐过程中添加驱动程序提示?

magento - 找不到 magento 销售订单模板

javascript - 如何在 Axios 响应中将 JSON 数组正确推送到 Vue JS 中的现有数据数组中?

php - 如何给request()->all()添加变量? (拉维尔 6.0)

php - Laravel Eloquent : Accessing properties and Dynamic Table Names