Laravel 5 使用having和paginate方法时出现查询生成器错误

Laravel 5 使用having和paginate方法时出现查询生成器错误,laravel-5,Laravel 5,我在Laravel 5.4中的查询生成器中使用了have和paginate。但是它显示错误。如果我删除了paginate方法,它工作正常。下面是我的代码 DB::table('nearbies') ->select(DB::raw('( 6371 * acos ( cos ( radians(9.955308) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(76.302331) )+ sin

我在Laravel 5.4中的查询生成器中使用了have和paginate。但是它显示错误。如果我删除了paginate方法,它工作正常。下面是我的代码

DB::table('nearbies')
    ->select(DB::raw('( 6371 * acos ( cos ( radians(9.955308) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(76.302331) )+ sin ( radians(9.955308) ) * sin( radians( latitude ) ))) AS distance,id,name,location'))
    ->havingRaw('( 6371 * acos ( cos ( radians(9.955308) ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians(76.302331) )+ sin ( radians(9.955308) ) * sin( radians( latitude ) ))) < 10')
    ->orderBy('distance','asc')
    ->paginate(3);

havingRaw无权访问生成的字段。因此,您需要使用whereRaw而不是havingRaw,如本答案所述:

有什么错误?SQLSTATE[42S22]:未找到列:1054“having子句”中的未知列“latitude”尝试使用whereRaw而不是havingRaw