首页 > 解决方案 > Laravel Befriended Column 'id' in where 子句不明确

问题描述

我正在使用 Laravel Laravel Befriended来实现用户对用户的阻止。当我withoutBlockingsOf($model)使用leftjoin过滤被阻止的用户时,得到

`"message": "SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous (SQL: select `users`.*, , ROUND(6371 * acos(cos(radians(22.5697)) * cos(radians(`latitude`)) * cos(radians(`longitude`) - radians(88.3697)) + sin(radians(22.5697)) * sin(radians(`latitude`)))) as distance from `users` left join `locations` as `l` on `users`.`id` = `l`.`user_id`  where `role_id` = 2 and `id` not in (691, 686) and `users`.`deleted_at` is null order by `created_at` desc limit 50)" `

没有leftJoin,一切正常。

控制器:

 User::withoutBlockingsOf($user)
    ->leftJoin('locations as l', 'users.id', '=', 'l.user_id')
    ->select('users.*', DB::raw('ROUND(6371 * acos(cos(radians(' . $lat . ')) * cos(radians(`latitude`)) * cos(radians(`longitude`) - radians(' . $lng . ')) + sin(radians(' . $lat . ')) * sin(radians(`latitude`)))) as distance'))
    ->get();

标签: laraveljoin

解决方案


推荐阅读