按用户名在Laravel中查找用户

2022-08-30 19:34:28

因此,通常情况下,如果您有权访问 laravel 中用户的 ID,则可以运行 User::find($id),但假设您无权访问用户的 ID,只能访问他们的用户名。有没有比使用 DB::query 查找用户更好的方法?

这是我目前的解决方案,想知道是否有人可能知道更好的方法。

$user_id = DB::table('users')->where('username', $user_input)->first()->id;

答案 1

是的,使用模型更好。就像这样

User::where('username','John') -> first();
// or use like 
User::where('username','like','%John%') -> first();
User::where('username','like','%John') -> first();
User::where('username','like','Jo%') -> first();

答案 2

这要视情况而定。如果用户已登录,您可以通过以下方式获得所需的任何信息:

$field = Auth::user()->field;

但是,如果他们没有登录,而您只需要他们的user_id则可以使用:

$user_id = User::select('id')->where('username', $username)->first();

推荐