【发布时间】:2018-07-11 10:26:37
【问题描述】:
我正在尝试在 laravel 5.4 中通过 ajax 实现过滤搜索结果目前我在与其他 where 语句结合使用时遇到 whereBetween 问题。
我有如下查询语句:
$query = $this->hotel->query();
$query = $query->where(function ($query){
$query->orWhereBetween('min_price' , [500 , 1000]);
$query->orWhereBetween('min_price' , [5000 , 50000]);
});
$query = $query->whereIn('internet', [1,2]);
$query = $query->whereIn('breakfast', [1,2]);
$query = $query->where('language', 'LIKE', '%'.'english'.'%');
$hotel = $query->get();
foreach($hotel as $h) {
echo $h->id.'<br>';
} exit();
上面的查询没有列出500 to 100和5000 to 50000之间的价格结果有两行符合上述条件,但它只返回一行。
数据库数据
id min_price internet breakfast language
4 876 2 2 english
5 40000 1 2 english
结果: 上面的查询结果只有 id 4,但应该返回 id 4 和 5。
我想我在网上遗漏了一些东西
$query = $query->where(function ($query){
$query->orWhereBetween('min_price' , [500 , 1000]);
$query->orWhereBetween('min_price' , [5000 , 50000]);
});
我怎样才能获得正确的结果?请帮忙。
【问题讨论】:
标签: php laravel-5 eloquent laravel-5.4 laravel-query-builder