2016-12-11 5 views
0

Wie getLastAttempted() in Laravel verwenden 5.3?So verwenden `getLastAttempted()` in Laravel 5.3?

$user = auth()->getLastAttempted(); 
    dd($user); 

    if (!$user->activated) { 
     return redirect('/login')->with('status', 'This account has not been activated.'); 
    } 

Ich möchte ein Benutzer überprüfen, ist activated oder nicht, wenn Login (Es gibt ein activated Feld in users Tabelle), fügen I den obigen Code in login() Verfahren unterhalb von \vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php,

wie folgt:

public function login(Request $request) 
    { 
     $this->validateLogin($request); 


     if ($this->hasTooManyLoginAttempts($request)) { 
      $this->fireLockoutEvent($request); 

      return $this->sendLockoutResponse($request); 
     } 

// start 
    $user = auth()->getLastAttempted(); 
     dd($user); 

     if (!$user->activated) { 
      return redirect('/login')->with('status', 'This account has not been activated.'); 
     } 
    //end  

     if ($this->attemptLogin($request)) { 
      return $this->sendLoginResponse($request); 
     } 


     $this->incrementLoginAttempts($request); 

     return $this->sendFailedLoginResponse($request); 
    } 

Das Ergebnis von dd($user); ist null.

Was soll ich tun?

Antwort

0

können Sie überschreiben die validateLogin Funktion:

$this->validate($request, [ 
     $this->username() => 'required|exists:users,' . $this->username() . ',activated,1', 
     'password' => 'required', 
    ]); 
1

wäre es nicht mehr Sinn machen Ihren Code Brocken innerhalb des else if-Anweisung zu setzen?

public function login(Request $request) 
    { 
     $this->validateLogin($request); 


     if ($this->hasTooManyLoginAttempts($request)) { 
      $this->fireLockoutEvent($request); 

      return $this->sendLockoutResponse($request); 
     } 

     if ($this->attemptLogin($request)) { 

      // start 
      $user = \Auth::user(); 
      dd($user); 

      if (!$user->activated) { 
       //instead of redirecting, increment attempts and send failed response 
       $this->incrementLoginAttempts($request); 
       return $this->sendFailedLoginResponse($request); 
      }else{ 
       return $this->sendLoginResponse($request); 
      } 
      //end  


     } 



     $this->incrementLoginAttempts($request); 

     return $this->sendFailedLoginResponse($request); 
    }