按用户名在Laravel中查找用户

Bra*_*don 11 php mysql laravel laravel-4

因此,通常如果您可以访问laravel中用户的id,则可以运行User :: find($ id),但是请说您无权访问用户的ID,只能访问其用户名.有没有比使用DB :: query定位用户更好的方法?

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

$user_id = DB::table('users')->where('username', $user_input)->first()->id;
Run Code Online (Sandbox Code Playgroud)

mda*_*mia 31

是的,使用该模型更好.像这样

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();
Run Code Online (Sandbox Code Playgroud)


小智 5

这取决于.如果用户已登录,您可以获得所需的任何信息:

$field = Auth::user()->field;
Run Code Online (Sandbox Code Playgroud)

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

$user_id = User::select('id')->where('username', $username)->first();
Run Code Online (Sandbox Code Playgroud)