Database larvel`orWhere()`函数
我正在生成一个查询,希望从中获得以下信息:Database larvel`orWhere()`函数,database,laravel,query-builder,Database,Laravel,Query Builder,我正在生成一个查询,希望从中获得以下信息: SELECT * FROM table WHERE color = 'white' OR color = 'red' 这种颜色是一种滤色器,根据客户的选择,它会添加红色或白色滤色器,甚至更多颜色 所以我测试了: if(isset($input['filter']['color'])) { $query->where(function($where) use ($input) { foreach($
SELECT * FROM table WHERE color = 'white' OR color = 'red'
这种颜色是一种滤色器,根据客户的选择,它会添加红色或白色滤色器,甚至更多颜色
所以我测试了:
if(isset($input['filter']['color'])) {
$query->where(function($where) use ($input) {
foreach($input['filter']['color'] as $color) {
$where->where('color', array($color));
}
});
}
但这导致:
SELECT * FROM table WHERE (color = 'white' AND color = 'red')
谁能告诉我怎么解决这个问题?我测试了一些东西,但没有得到我想要的结果。颜色只是在过滤器上,有更多的过滤选项
例如,筛选器查询可能如下所示:
SELECT * FROM table WHERE (color = 'white' OR color = 'red') AND (used = 'Y') AND (size = 1 OR size = 2) etc..
Erwin使用orWhere过滤器:
如果设置为$input['filter']['color']{
$query->wherefunction$query使用$input{
foreach$input['filter']['color']作为$color{
$query->orWhere'color',$color;
}
};
}
或仅使用其中:
如果设置为$input['filter']['color']{
$query->其中的'color',$input['filter']['color'];
}
使用orWhere过滤器:
如果设置为$input['filter']['color']{
$query->wherefunction$query使用$input{
foreach$input['filter']['color']作为$color{
$query->orWhere'color',$color;
}
};
}
或仅使用其中:
如果设置为$input['filter']['color']{
$query->其中的'color',$input['filter']['color'];
}
从不考虑函数中的where。这是一个更简单的解决方案。谢谢你的建议!这是我一直在寻找的,但很高兴能找到一个解决方案。有类似where-in-like的东西吗?从来没有想过where-in函数。这是一个更简单的解决方案。谢谢你的建议!这是我一直在寻找的,但很高兴能找到一个解决方案。这里面有什么东西吗?