Wenn Sie also normalerweise Zugriff auf die ID eines Benutzers in Laravel haben, können Sie User::find($id) ausführen, aber sagen Sie, Sie haben keinen Zugriff auf die ID des Benutzers und nur auf seinen Benutzernamen. Gibt es einen besseren Weg als die Verwendung von DB::query, um den Benutzer zu finden?
Dies ist meine aktuelle Lösung und ich habe mich gefragt, ob jemand möglicherweise einen besseren Weg kennt.
$user_id = DB::table('users')->where('username', $user_input)->first()->id;
Ja, noch besser mit dem Modell. genau wie dieser
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();
Es hängt davon ab, ob. Wenn ein Benutzer angemeldet ist, können Sie alle gewünschten Informationen erhalten, indem Sie:
$field = Auth::user()->field;
Aber wenn sie nicht eingeloggt sind und Sie nur ihre user_id wollen, können Sie Folgendes verwenden:
$user_id = User::select('id')->where('username', $username)->first();
$user_id = DB::table('users')->where('username', $user_input)->first();
ohne “->id”
überprüfe hier: http://laravel.com/docs/5.0/queries
14397000cookie-checkFinden Sie Benutzer in Laravel anhand des Benutzernamensyes
Sie können whereUsername($user_input) anstelle von where tun, es ist jedoch kein großer Unterschied
– rjdown
21. August 2015 um 18:44 Uhr
Vielleicht verwenden
->value('id');
? auch statt->first()->id
– David Nguyen
21. August 2015 um 19:12 Uhr