У меня есть красноречивый запрос, который получает идентификатор пользователя и его расстояние от вашей собственной позиции
$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);
Запрос работает и рассчитывает все расстояния. Но тогда я не могу запросить эти расстояния. Потому что передача 'distance' для оператора whereRaw () не переносится?
Я получаю
Unknown column 'distance' in 'where clause'
Кто-нибудь знает, как я могу сделать это иначе?
Во всех остальных ответах говорится, что вместо того, чтобы ГДЕ попытаться ИМЕТЬ, потому что это проблема MYSQL. Но когда я пробую laravels withRaw (), он все равно не работает?