Laravel whereIn 或 whereIn
我正在按过滤器搜索产品:
I'm making a products search by filters:
我的代码:
->where(function($query) use($filter)
{
if(!empty($filter)){
foreach ($filter as $key => $value) {
$f = explode(",", $value);
$query-> whereIn('products.value', $f);
}
}
})
查询:
and (products.value in (Bomann, PHILIPS) and products.value in (red,white))
但我需要:
and (products.value in (Bomann, PHILIPS) OR products.value in (red,white))
在 Laravel 中是否有类似的东西:
Is there something similar in Laravel:
orWhereIn
推荐答案
您可以只在核心中搜索 whereIn
函数来查看.这个给你.这必须回答你所有的问题
You could have searched just for whereIn
function in the core to see that. Here you are. This must answer all your questions
/**
* Add a "where in" clause to the query.
*
* @param string $column
* @param mixed $values
* @param string $boolean
* @param bool $not
* @return IlluminateDatabaseQueryBuilder|static
*/
public function whereIn($column, $values, $boolean = 'and', $not = false)
{
$type = $not ? 'NotIn' : 'In';
// If the value of the where in clause is actually a Closure, we will assume that
// the developer is using a full sub-select for this "in" statement, and will
// execute those Closures, then we can re-construct the entire sub-selects.
if ($values instanceof Closure)
{
return $this->whereInSub($column, $values, $boolean, $not);
}
$this->wheres[] = compact('type', 'column', 'values', 'boolean');
$this->bindings = array_merge($this->bindings, $values);
return $this;
}
看看它有第三个布尔参数.祝你好运.
Look that it has a third boolean param. Good luck.
相关文章