以Laravel 4中的倍数DB raw选择的转义值

时间:2016-01-12 13:40:39

标签: laravel laravel-4 laravel-query-builder

在我的查询中,我有类似的内容:

->select('User.id', 'city', 'lat', 'lng', 'comment', 'Comments.created_at', 'disponibility',
        DB::raw("User.*, (count(Comments.user_id)) as note_count"),
        DB::raw("User.*, (3956 * 2 * ASIN(SQRT( POWER(SIN((:lat - lat) *  pi()/180 / 2), 2) +COS(:lat * pi()/180) * COS(lat * pi()/180) * POWER(SIN((:lng - lng) * pi()/180 / 2), 2) ))/0.621371192) as distance"),
        ["lat" => $lat, "lng" => $lng]
)    

有一个原因,它给我错误,我不知道为什么

strtolower() expects parameter 1 to be string, array given

任何人都可以帮助我吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

这里的问题可能是你的绑定不是DB::raw的第二个参数,而是select方法的参数。

试试而不是上面的代码:

->select('User.id', 'city', 'lat', 'lng', 'comment', 'Comments.created_at', 'disponibility',
        DB::raw("User.*, (count(Comments.user_id)) as note_count"),
        DB::raw("User.*, (3956 * 2 * ASIN(SQRT( POWER(SIN((:lat - lat) *  pi()/180 / 2), 2) +COS(:lat * pi()/180) * COS(lat * pi()/180) * POWER(SIN((:lng - lng) * pi()/180 / 2), 2) ))/0.621371192) as distance", ["lat" => $lat, "lng" => $lng])
)