基于两个参数将SQL查询转换为Eloquent Laravel

时间:2015-12-22 09:11:20

标签: php mysql laravel eloquent

我有一个SQL查询:

SELECT lat, lng, SQRT(
        POW(69.1 * (lat - $lat), 2) +
        POW(69.1 * ($lng - lng) * COS(lat / 57.3), 2)) AS distance
FROM locations HAVING distance < 25 ORDER BY distance;

现在我想把它转换为Eloquent但这里是问题 现在,我根据一个参数来查询我的表格 Venue::where('lat',">",12.133)但是现在我想在我的桌子上运行一个程序并且我不知道如何完成这种查询。
你怎么做到的?

1 个答案:

答案 0 :(得分:0)

我真的怀疑你可以使用Eloquent获取该查询...但是你可以使用查询构建器和raw

Locations::select(DB::raw("
        lat,lng, SQRT(
            POW(69.1 * (lat - $lat), 2) +
            POW(69.1 * ($lng - lng) * COS(lat / 57.3), 2)) AS distance"))
->havingRaw('distance < 25')
->orderBy('distance')