Finden Sie Benutzer in Laravel anhand des Benutzernamens

Lesezeit: 2 Minuten

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;

  • 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

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

  • Hängt von Ihrer Definition von “noch besser” ab. Es gibt einen Leistungseinbruch bei der Verwendung von Modellabfragen im Gegensatz zu DB-Abfragen – daher könnten einige argumentieren, dass die Verwendung von OP ein guter Weg ist. Kommt auf die Nutzung an.

    – SupaMonkey

    1. August 2019 um 8:33 Uhr

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

  • Ja, ich verstehe die Verwendung von Auth::user()->blah, aber ich musste einen Benutzer anhand seines angegebenen Benutzernamens finden, ohne dass er angemeldet ist. Vielen Dank, dass Sie eine Alternative zu dem von mir verwendeten Code bereitgestellt haben. Ich wollte nur prüfen, ob es eine bessere oder effizientere Alternative gibt. Nochmals vielen Dank.

    – Brandon

    23. August 2015 um 18:25 Uhr

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

ohne “->id”

überprüfe hier: http://laravel.com/docs/5.0/queries

  • @Adamnick, hast du eine Antwort bekommen, die für dich funktioniert hat?

    – Madamia

    1. September 2015 um 3:37 Uhr

1439700cookie-checkFinden Sie Benutzer in Laravel anhand des Benutzernamens

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy