我现在正处在边缘。在过去的 2 小时内,我一直试图让这个非常简单的查询正常工作,但它不会
查询所做的只是选择价格在某个范围之间的所有行。查询如下所示:
select * from `properties` where `price` >= ? and `price` <= ? limit 16 offset
在 phpmyadmin 中运行时返回正确的结果(2 行)
但是当我在 Laravel 中使用 ->get() 或 ->count() 时,它会返回完全错误的答案。
这是我的完整 Laravel 代码
$query = Property::query();
$price_min = Input::get('price_min');
$price_max = Input::get('price_max', 1000000);
$query->where('price', '>=', $price_min);
$query->where('price', '<=', $price_max);
\DB::enableQueryLog();
$properties = $query->paginate(16);
Helper::pr(['found' => count($properties)]);
Helper::printLastQuery();
输出:
Array
(
[found] => 8 <----- THIS SHOULD SAY 2
)
Array
(
[query] => select * from `properties` where `price` >= ? and `price` <= ? limit 16 offset 0
[bindings] => Array
(
[0] => 475944
[1] => 909796
)
[time] => 3
)
最佳答案
我明白了为什么它不起作用
我在数据库中将数据类型字段作为文本
,因此它无法比较数字。
在我看来,我通过使用 XML feed 生成适当列的脚本创建了该表
关于php - 使用 Laravel 5.5 极其简单的查询得到错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279042/