I'm new to laravel and I' developing an app using google map where user search for a location and then it returns places in a specific radius. But I got stuck in how to write down the code in Eloquent. My query is :
$lat = $request->input( 'lat' );
$lng = $request->input( 'lng' );
$dist = $request->input( 'dist' );
$query = "SELECT *, ( 6371 * acos( cos( radians('$lat') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('$lng') ) + sin( radians('$lat') ) * sin( radians( lat ) ) ) ) AS distance FROM locations WHERE lat != '$lat' AND lng != '$lng' HAVING distance <= $dist ORDER BY id DESC";
I've tried :
$locations = \DB::table( 'locations' )->select(['*', "( 6371 * acos( cos( radians('$lat') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('$lng') ) + sin( radians('$lat') ) * sin( radians( lat ) ) ) ) as distance"])->paginate(5);
But it seems it is not working. Instead it displays this error :
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* from `locations` limit 5 offset 0' at line 1 (SQL: select *, `(` as * from `locations` limit 5 offset 0)
Please help me figure out the issue. Thanks in advance.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire