Найти пользователя в Laravel по имени пользователя

поэтому обычно, если у вас есть доступ к идентификатору пользователя в laravel, вы можете запустить User::find($id), однако скажите, что у вас нет доступа к идентификатору пользователя и только его имени пользователя. Есть ли лучший способ, чем использовать DB::query для поиска пользователя?

Это мое текущее решение, и мне было интересно, может ли кто-то знать лучший способ.

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

3 ответов


да, еще лучше использовать модель. просто такой

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

Это зависит. Если пользователь вошел в систему, вы можете получить любую информацию по:

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

но если они не вошли в систему, и вы просто хотите их ид_пользователя вы можете использовать:

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

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

без "- > id"

проверьте здесь:http://laravel.com/docs/5.0/queries