laravel Eloquent集合where方法不支持<,>,<>等运算符
Song •
3419 次浏览 •
1个评论 •
2018年04月04日
今天在查询系统bug的过程中,发现laravel Eloquent集合where方法不支持<,>,<>等运算符,比如:
$collection = collect([
['product' => 'Desk', 'price' => 200],
['product' => 'Chair', 'price' => 100],
['product' => 'Bookcase', 'price' => 150],
['product' => 'Door', 'price' => 100],
]);
$filtered = $collection->where('price','<>',100);
$filtered->all();
上面的算法中,你会发现会返回空数据,查看源码可以发现:
public function where($key, $value, $strict = true)
{
return $this->filter(function ($item) use ($key, $value, $strict) {
return $strict ? data_get($item, $key) === $value
: data_get($item, $key) == $value;
});
}
laravel Eloquent集合where方法不支持<,>,<>等运算符,所以大家需要自己更改自己的查询!
-
Laravel Redis数据库切换以及laravel缓存/Session使用不同的Redis数据库 2018-03-28 -
解决laravel批量插入或者使用firstOrCreate/updateOrCreate出现MassAssignmentException错误 2018-03-27 -
laravel分批次处理大量数据以及chunk函数的使用方法 2018-03-26 -
Laravel5.*实现FULL TEXT全文索引分页以及laravel实现文章标题和内容模糊搜索 2018-03-17 -
mysql/Mariadb开启全文检索fulltext配置以及大数据搜索优化 2018-03-17

更多相关好文