2016-05-05 5 views
0
$results = DB::selectRaw("idEvent, name, latitude, longitude, dateStart, dateEnd, timeStart, timeEnd, 
          (6371 * acos(cos(radians(?)) * 
           cos(radians(latitude)) 
           * cos(radians(longitude) - radians(?) 
           ) + sin(radians(?)) * 
           sin(radians(latitude))) 
          ) AS distance", [$latitude], [$longitude], [$latitude]) 
      ->where('active', '1') 
      ->having("distance", "<", $radius) 
      ->orderBy("distance") 
      ->get(); 

私は、私が使用していたが、雄弁と同じであった。このクエリを見つけたが、私はLaravel - MySqlConnectionにselectRaw「メソッドはありません 『』

MySqlConnectionには、抱えている」持っていませんメソッド 'selectRaw'。

  • selectRawは、生のクエリを実行するが、雄弁の少しとする権利1ですか?
  • DBは私が作成しなければならないものか、そのままこのままにすることができますか?

答えて

0

問題は、私はselectRawを使用して停止し、私のクエリでパラメータを挿入するためにaddBindingを使用

$results= DB::table('events') 
          ->select(DB::raw('name,(6371 * acos(cos(radians(?)) * cos(radians(latitude)) * cos(radians(longitude) - radians(?)) + sin(radians(?)) * sin(radians(latitude)))) AS distance')) 
          ->addBinding($latitude, 'select') 
          ->addBinding($longitude, 'select') 
          ->addBinding($latitude, 'select') 
          ->having("distance", "<", $radius) 
          ->orderBy("distance") 
          ->get(); 


     return Response::json($users); 

を解決しました。

+0

未定義関数の呼び出しとしてエラーが発生しています。radians() – Learner

関連する問題