實際上我是 laravel 的新手,我嘗試從 10 公里緯度和經度以下的 Sql 獲取用戶,但它的拋出錯誤。錯誤是——方法 Illuminate\Support\Collection::SQRT 不存在。這是我的控制器代碼<?phpnamespace 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 回答

子衿沉夜
TA貢獻1828條經驗 獲得超3個贊
你可以試試這個——
$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();
- 1 回答
- 0 關注
- 90 瀏覽
添加回答
舉報
0/150
提交
取消