2016-12-30 3 views
0

Ich habe eine Login-Seite, die Flash-Benachrichtigungen auf Fehler zeigt.plötzlich Flash-Benachrichtigung in einer Funktion nicht mehr funktioniert

folgende Fehler auf dem es Flash-Meldung zeigt:

1.when der Benutzer hat seine/ihre E-Mail-ID nicht bestätigt. 2.Wenn der Benutzer falsche Anmeldedaten eingibt.

es funktionierte gut vor einigen Tagen, aber jetzt zeigt es Fehler

undefined index password

meine Logik:

public function postSignIn(Request $request) 
    { 

     $this->validate($request,[ 

       'loginEmail'=> 'required' , 
       'loginPassword' => 'required' 

       ]); 


     $remember = $request->input('remember_me'); 

     $user=User::where('email', $request['loginEmail'])->first(); 


     if(Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword'],'confirmed'=>1],$remember)) 
     { 




      //return redirect()->route('myplace'); 
      return redirect()->route('myplace',['username' => $user->username]) ; 
     } 
     if(Auth::attempt(['confirmed'=>0])) 
     { 
\Session::flash('message','Please verify your email!'); 
     \Session::flash('alert-class', 'alert-warning'); 
     return redirect()->back(); 
     } 
     if(!Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']])) 
     { 
     \Session::flash('message','Login credentials are wrong!'); 
     \Session::flash('alert-class', 'alert-warning'); 
      return redirect()->back(); 
      } 


    } 
+0

Überprüfen Sie die vollständige Fehlermeldung, es gibt an, welche Klasse und Zeile den Fehler verursacht. –

+0

@AlexeyMezenin genaue Fehler: Error in /home/aksoutco/public_html/laravel/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php Linie 116: Undefined index: Passwort –

Antwort

0

Das Problem dabei ist:

if(Auth::attempt(['confirmed'=>0])) 

Sie können nicht verwenden attempt() ohne Passwort zu übergeben. Versuchen Sie also, den gleichen Code zu verwenden, den Sie später im Code verwenden:

Auth::attempt(['email'=>$request['loginEmail'], 'password' => $request['loginPassword']]) 
+0

Ich habe versucht: if (Auth: : versuchen (['email' => $ request ['loginEmail'], 'password' => $ request ['loginPassword'], 'bestätigt' => 0])) aber was passiert ist, dass ich eingeloggt habe, was nicht sollte passieren als E-Mail ist nicht bestätigt –

+0

Nein gibt es kein Paket und wie manuell? –

+0

Da Sie die E-Mail-Adresse des Benutzers haben, können Sie den Benutzer per E-Mail von DB per '$ user = User: where (' email ', $ request [' loginEmail ']) -> first(); 'erreichen und prüfen, ob es ist bestätigt oder nicht. Ich sehe keine DB-Struktur, aber der Code sieht so aus: 'if ($ user-> confirmed == 1)' –

Verwandte Themen