2017-11-22 7 views
0

laravelのkm以内のユーザーを検索するスクリプトを作成しています。laravelの特定のkm内のユーザーを検索

if ($request->has('city')) { 

    $latitude = app('geocoder')->geocode($request->city)->get()->first()->getCoordinates()->getLatitude(); 
    $longitude = app('geocoder')->geocode($request->city)->get()->first()->getCoordinates()->getLongitude(); 

    $user->whereHas('user_data', function($query) use ($request, $latitude, $longitude) { 
     return $query->whereRaw("(6371 * acos (cos (radians(".$latitude.")) * cos(radians(latitude)) * cos(radians(longitude) - radians(".$longitude.")) + sin (radians(".$latitude.")) * sin(radians(latitude))) <= ". $request->distance .")")->get(); 
      }); 
     } 

が、問題は、私はエラーを取得していますということである:ここに私のコードは

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.id' in 'where clause' (SQL: select * from `user_datas` where `user_datas`.`user_id` = `users`.`id` and (6371 * acos (cos (radians(52.406374)) * cos(radians(latitude)) * cos(radians(longitude) - radians(16.9251681)) + sin (radians(52.406374)) * sin(radians(latitude))) <= 10)) 

これを修復し、コードの作品を​​作るためにどのように?

答えて

0

どの程度...

$users = App\Users::whereRaw("(6371 * acos (cos (radians(".$latitude.")) * cos(radians(latitude)) * cos(radians(longitude) - radians(".$longitude.")) + sin (radians(".$latitude.")) * sin(radians(latitude))) <= ". $request->distance .")")->get(); 
関連する問題