Как передать параметры методу в моем запросе, используя whereRaw?Передача параметров методу в запросе с использованием whereRaw
У меня есть «ошибка синтаксиса, неожиданный» «» при попытке добавить «широту» и «долгота», которые являются имена столбцов:.
public function show($lon, $lat, $radio) {
$results = Viaje::where($otherStuff)
->whereRaw('radio + ' . $radio . ' <= ' . $this->getDistanceFromLatLonInKm($lat, $lon, . 'latitude, longitude)');
return response()->json($results);
}
Если удалить эту точку, я в конечном итоге прохождение 2 поплавков + 2 строки в мой метод вместо требуется 4 поплавков, поэтому я получаю ошибку 500.
public function show($lon, $lat, $radio)
{
$results = Viaje::where($otherStuff)->whereRaw('radio + ' . $radio . ' <= ' . $this->getDistanceFromLatLonInKm($lat, $lon, 'latitude', 'longitude'));
return response()->json($results);
}
Edit:
«радио», «долготы» и «широты» являются именами столбцов, содержащих поплавок стоимость.
public function getDistanceFromLatLonInKm($lat1,$lon1,$lat2,$lon2) {
$R = 6371; // Radius of the earth in km
$dLat = deg2rad($lat2-$lat1);
$dLon = deg2rad($lon2-$lon1);
$a = sin($dLat/2) * sin($dLat/2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2))
+ sin($dLon/2) * sin($dLon/2);
$c = 2 * atan2(sqrt($a), sqrt(1-$a));
$d = R * c; // Distance in km
return $d;
}
в каком виде? – jaysingkar
getDistanceFromLatLonInKm ($ lat1, $ lon1, $ lat2, $ lon2) – lulu666
$ results = Viaje :: where ($ otherStuff) -> whereRaw ('radio +'. $ Radio. '<='. $ This-> getDistanceFromLatLonInKm ($ lat, $ lon, 'широта', 'долгота')); – jaysingkar