按用户名在Laravel中查找用户

时间:2015-08-21 18:36:25

标签: php mysql laravel laravel-4

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

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

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

3 个答案:

答案 0 :(得分:29)

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

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();

答案 1 :(得分:5)

这取决于。如果用户已登录,您可以通过以下方式获得所需信息:

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

但如果他们没有登录并且您只想要他们的user_id,您可以使用:

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

答案 2 :(得分:0)

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

没有" - > id"

点击此处:http://laravel.com/docs/5.0/queries