小编use*_*335的帖子

Laravel `orWhere()` 函数

我正在构建一个查询,我想获得以下信息:

SELECT * FROM table WHERE color = 'white' OR color = 'red'
Run Code Online (Sandbox Code Playgroud)

这种颜色是一个过滤器,根据客户的选择,它添加红色或白色过滤器,甚至更多颜色。

所以我测试了:

    if(isset($input['filter']['color'])) {
        $query->where(function($where) use ($input) {
            foreach($input['filter']['color'] as $color) {
                $where->where('color', array($color));
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

但这会导致:

SELECT * FROM table WHERE (color = 'white' AND color = 'red')
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何解决这个问题?我测试了一些东西,但没有得到我想要的结果。颜色只是过滤器上的,还有更多过滤选项。

例如,过滤器查询可能如下所示:

SELECT * FROM table WHERE (color = 'white' OR color = 'red') AND (used = 'Y') AND (size = 1 OR size = 2) etc..
Run Code Online (Sandbox Code Playgroud)

欧文

database query-builder laravel

2
推荐指数
1
解决办法
6552
查看次数

标签 统计

database ×1

laravel ×1

query-builder ×1