Получение пользователей от Sql до 10 км широты и долготы - PullRequest
3 голосов
/ 23 января 2020

На самом деле я новичок в laravel, и я пытаюсь получить пользователей из Sql Менее 10 км широты и долготы, но с ошибкой выброса. Ошибка -

Метод Подсветка \ Поддержка \ Коллекция :: SQRT не существует.

Вот код моего контроллера

<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController;
use DB;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
    public function index()
    {
        $users = DB::table('users')
        ->select('id','name','phone','latitude','longitude')
        ->get()
        ->SQRT("POW(69.1 * (latitude - 24.900110), 2) +
        POW(69.1 * (67.099760 - longitude) * COS(latitude / 57.3), 2)) AS distance")
        ->having("distance < 25")
        ->orderBy("distance");

         return view('userview', compact('users'));

    }
}

1 Ответ

5 голосов
/ 23 января 2020

Вы можете попробовать это -

$users = DB::table('users')
          ->select(DB::raw('id,name,phone, SQRT(POW(69.1 * (latitude - 24.900110), 2) + POW(69.1 * (67.099760 -longitude) * COS(latitude / 57.3), 2)) AS distance'))
          ->havingRaw('distance < 25')
          ->OrderBy('distance')
          ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...