【发布时间】:2022-01-21 21:15:17
【问题描述】:
public function ScopeDistance($query, $from_latitude, $from_longitude, $distance)
{
$raw = DB::raw('ROUND ( ( 6371 * acos( cos( radians(' . $from_latitude . ') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(' . $from_longitude . ') ) + sin( radians(' . $from_latitude . ') ) * sin( radians( lat ) ) ) ) ) AS distance');
return $query->select('*')->addSelect($raw)->orderBy('distance', 'ASC')->groupBy('distance')->having('distance', '<=', $distance);
}
我正在尝试从纬度和经度中找到最近的数据。我得到这个错误?解决方法错了吗?
$userData = UserLocation::whereUserId(3)->first();
$max_distance = 50;
$nearByTickets = Ticket::with(['brand', 'appliance'])->distance($userData->lat, $userData->lng, $max_distance)->get();
return success($nearByTickets, __('tickets neared to you is'));
【问题讨论】:
标签: laravel database eloquent model