首先,我在这里遇到了类似的问题,我应该在那里问我的问题;但是,我是一个新用户,缺乏足够的声誉点评论。因此,我很抱歉在这里提出了这个问题。
我有一个使用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();
答案 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]);