Laravel - MySqlConnection'没有方法'selectRaw'

时间:2016-05-05 17:21:29

标签: php mysql laravel

$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'。

  • selectRaw是正确的查询,但有一点Eloquent吗?
  • 我必须创建一些DB,或者我可以这样做吗?

1 个答案:

答案 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在我的查询中插入参数。