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

Pri*_*nka 23 php mysql laravel

我在做:

    User::all();
Run Code Online (Sandbox Code Playgroud)

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

    User::where('id','!=',$currentUser->id)->get();
Run Code Online (Sandbox Code Playgroud)

提前致谢!

dam*_*ani 53

使用except()会更流畅地完成同样的事情:

$users = User::all()->except(Auth::id());
Run Code Online (Sandbox Code Playgroud)

...或者,因为您已拥有用户ID:

$users = User::all()->except($currentUser->id);
Run Code Online (Sandbox Code Playgroud)

  • 真棒!使用ID的数组以及`User :: all() - >除了([1,2,3,4]);`干杯:)这应该更新为当前API下的最佳答案. (4认同)
  • 需要明确的是:这还会从数据库中获取当前用户,这是不必要的。 (3认同)

Jos*_*ber 35

您可以使用获取当前用户的ID auth()->id().然后将其传递给查询:

$users = User::where('id', '!=', auth()->id())->get();
Run Code Online (Sandbox Code Playgroud)


Luc*_*ira 6

如果您使用的是Auth帮助程序,请使用此帮助程序.

User::where('id', '!=', Auth::user()->id)->get();
Run Code Online (Sandbox Code Playgroud)