在laravel eloquent中获取当前登录用户以外的所有用户

时间:2014-07-07 14:53:46

标签: php mysql laravel

我在做:

    User::all();

从users表中获取所有用户。我想选择除当前登录用户之外的所有用户。我该怎么办?像,

    User::where('id','!=',$currentUser->id)->get();

提前致谢!

5 个答案:

答案 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' 实际上是检索所有用户,然后对集合执行额外的操作以删除当前用户,这不是那么有效。