$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();
我发现这个查询与我想要使用的相同,但有Eloquent,但我有
MySqlConnection'没有方法'selectRaw'。
答案 0 :(得分:1)
问题已解决
$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);
我停止使用selectRaw并使用addBinding在我的查询中插入参数。