【发布时间】:2019-10-07 13:06:10
【问题描述】:
我有一个 laravel 雄辩的查询,它获取用户 ID,以及他们与您自己位置的距离
$lat = Auth::user()->lat;
$lon = Auth::user()->lon;
$users = DB::table('users')
->select(DB::raw("id, ASIN(SQRT( POWER(SIN(($lat
- abs(lat))*pi()/180/2),2)+COS($lat*pi()/180 )*COS(abs(lat)*pi()/180)
*POWER(SIN(($lon-lon)*pi()/180/2),2)))as distance))
->whereRaw("distance < $radius")
>paginate($this->takeResults);
查询有效并计算所有距离。但是我无法查询这些距离。因为将“距离”传递给 whereRaw() 语句似乎没有延续?
我明白了
Unknown column 'distance' in 'where clause'
有人知道我该怎么做吗?
所有其他答案都说尝试 HAVING 而不是 WHERE,因为它是 MYSQL 问题。但是当我尝试 laravel havingRaw() 它仍然不起作用?
【问题讨论】:
-
不能在 where 子句中使用别名
-
Here 很好的答案。
标签: php laravel eloquent lumen