In Laravel für den Login-Versuch verwende ich im Allgemeinen etwas wie folgt:
%Vor% Grundsätzlich überprüft $usernameinput
mit email
in meiner Tabelle.
Ich habe mir gedacht, es anders zu machen, so wie email
, username
und password
in meiner Tabelle. $usernameinput
kann entweder email
oder username
in meiner Tabelle sein.
Wie kann ich Auth::attempt
mit einer Bedingung wie:
Nun könnten Sie einfach überprüfen, ob $usernameinput
mit einem E-Mail-Muster übereinstimmt, und wenn dies der Fall ist, verwenden Sie das Feld email
, andernfalls verwenden Sie das Feld username
. Das hört sich vernünftig an, denn Sie sollten wirklich keine E-Mail in Ihrer Datenbank haben, die nicht mit dem Muster übereinstimmt. Etwas wie das:
Die andere Option besteht darin, Illuminate\Auth\Guard
um die gewünschte Funktionalität zu erweitern und sie als auth
-Komponente in einem neuen Dienstanbieter festzulegen.
Hier ist die komplette Arbeitslösung: (Getestet mit Laravel 5.3)
Fügen Sie einfach diese Methode (oder wir können sie überschreiben) in app \ Http \ Controllers \ Auth \ LoginController.php
ein %Vor%