如何將參數傳遞給使用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);
}
編輯:
「無線電」,「經度」和「緯度」是含有一個浮子列名值。
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,'latitude','longitude')); – jaysingkar