如何为此查询使用分页?
$listings = DB::table('listings')
->selectRaw('*, ( 3959 * acos( cos( radians(' . $lat . ') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(latitude) ) ) ) AS distance')
->having('distance', '<', $distance)
->orderBy('distance')->paginate(10);
我尝试了分页(10)它不起作用。
错误:
SQLSTATE [42S22]:未找到列:1054未知列&#39;距离&#39;在&#39;有条款&#39; (SQL:选择count(*)作为listings
具有distance
&lt; 5)的聚合
答案 0 :(得分:1)
$distance
必须是变量,如果您传递了$distance
的值,它应该具有值
它应该像
$listings = DB::table('listings')
->selectRaw('*, ( 3959 * acos( cos( radians(' . $lat . ') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(' . $lng . ') ) + sin( radians(' . $lat .') ) * sin( radians(latitude) ) ) ) AS distance')
->having('distance', '<', 100)
->orderBy('distance')
->paginate(10);