如何在此查询laravel中使用paginate

时间:2017-02-15 06:16:14

标签: mysql sql laravel laravel-5 pagination

如何为此查询使用分页?

$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)的聚合

1 个答案:

答案 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);