web-dev-qa-db-fra.com

Rechercher un utilisateur dans Laravel par nom d'utilisateur

Donc, généralement, si vous avez accès à l'ID d'un utilisateur dans laravel vous pouvez exécuter User :: find ($ id), mais dites que vous n'avez pas accès à l'ID de l'utilisateur et uniquement à son Nom d'utilisateur. Existe-t-il un meilleur moyen que d'utiliser DB :: query pour localiser l'utilisateur?

C'est ma solution actuelle et je me demandais si quelqu'un savait peut-être mieux.

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

Oui, encore mieux en utilisant le modèle. juste comme ça

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

Ça dépend. Si un utilisateur est connecté, vous pouvez obtenir toutes les informations que vous souhaitez en:

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

Mais s'ils ne sont pas connectés et que vous voulez juste leur user_id, vous pouvez utiliser:

$user_id = User::select('id')->where('username', $username)->first();
5
Hamidreza Bayat
$user_id = DB::table('users')->where('username', $user_input)->first();

sans "-> id"

vérifiez ici: http://laravel.com/docs/5.0/queries

0
Angel M.