我在做:
User::all();
从users表中获取所有用户。我想选择除当前登录用户之外的所有用户。我该怎么办?像,
User::where('id','!=',$currentUser->id)->get();
提前致谢!
答案 0 :(得分:45)
使用except()
将更加流利地完成同样的事情:
$users = User::all()->except(Auth::id());
...或者,因为您已拥有用户ID:
$users = User::all()->except($currentUser->id);
答案 1 :(得分:30)
您可以使用auth()->id()
获取当前用户的ID。然后将其传递给查询:
$users = User::where('id', '!=', auth()->id())->get();
答案 2 :(得分:6)
如果您使用的是Auth助手,请使用此功能。
User::where('id', '!=', Auth::user()->id)->get();
答案 3 :(得分:0)
Use Auth;
Use App\User;
public function index()
$id = Auth::id();
$result = User::where('id', '!=', $id)->get();
dd($result);
答案 4 :(得分:0)
App\Models\User::whereKeyNot(auth()->id)->get()
使用 'except' 实际上是检索所有用户,然后对集合执行额外的操作以删除当前用户,这不是那么有效。