对模型的选择查询返回空集合

时间:2015-10-26 12:48:27

标签: laravel eloquent

首先,我在这里遇到了类似的问题,我应该在那里问我的问题;但是,我是一个新用户,缺乏足够的声誉点评论。因此,我很抱歉在这里提出了这个问题。

我有一个使用Eloquent Model的select查询,它包含一个使用DB :: raw方法的动态创建的列。我面临的问题是,即使数据库表中有相关​​数据要显示,它也会返回一个空集合。

另外,当我在mysql中运行此查询时,它返回所需的输出。

$geocodes = Geocode::select(
 DB::raw("zipcode, ( 3959 * acos( cos( radians(?) ) *
                             cos( radians( latitude ) ) *
                             cos( radians( longitude ) - radians(?) ) +
                             sin( radians(?) ) *
                             sin( radians( latitude ) ) )
                   ) AS distance"))
 ->having("distance", "<", "?")
 ->orderBy("distance")
 ->setBindings([$latitude, $longitude, $latitude, $radius])
 ->get();

1 个答案:

答案 0 :(得分:0)

好的,所以我无法弄清楚为什么我用上面提到的Eloquent查询得到任何空集合;但是,由于转换的查询产生了所需的结果,我使用整个原始查询来获得结果数组。

但是如果有人可以回答原始查询返回空集合的原因,我真的很感激。

$geocodes = DB::select(DB::raw("select zipcode, ( 3959 * acos( cos( radians(?) ) *
                         cos( radians( latitude ) ) *
                         cos( radians( longitude ) - radians(?) ) +
                         sin( radians(?) ) *
                         sin( radians( latitude ) ) )
               ) AS distance from geocodes having distance <= ? order by distance"), [$lat, $long, $lat, $radius]);