2015-08-21 18 views
8

Quindi, in genere, se si ha accesso all'ID di un utente in laravel, è possibile eseguire User :: find ($ id), tuttavia affermare di non avere accesso all'ID dell'utente e solo loro nome utente. C'è un modo migliore di utilizzare DB :: query per individuare l'utente?Trova utente in Laravel per nome utente

Questa è la mia soluzione attuale e mi chiedevo se qualcuno forse sapeva un modo migliore.

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

si può fare whereUsername ($ user_input) invece di dove, non è davvero molta differenza però – rjdown

+1

Forse usa '-> value ('id');'? pure invece di '-> first() -> id' –

risposta

20

Sì, meglio ancora utilizzando il modello. proprio così

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

Ho un problema in laravel per favore vedi se puoi rispondere [link] (http://stackoverflow.com/questions/32318866/unable-to-retrieve-data-sent-via-ajax-in- controller-laravel-5-1) –

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

senza "-> id"

controllo qui: http://laravel.com/docs/5.0/queries

+0

ho un problema in laravel per favore vedi se riesci a rispondere [link] (http://stackoverflow.com/questions/32318866/unable-to-retrieve-data -sent-via-ajax-in-controller-laravel-5-1) –

+0

@Adamnick, hai ricevuto una risposta che ha funzionato per te? – mdamia

+0

non ancora @mdamia –

4

Dipende. Se un utente è connesso è possibile avere tutte le informazioni desiderate da:

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

Ma se non vengono registrati e si desidera solo loro user_id è possibile utilizzare:

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

Sì, ho capito usando Auth :: user() -> blah, ma avevo bisogno di trovare un utente con il loro nome utente specificato senza che si effettuasse l'accesso. Grazie per aver fornito un codice alternativo al codice Stavo usando. Volevo solo verificare se esistesse un'alternativa migliore o più efficiente. Ancora una volta, grazie. – Brandon