2016-04-26 4 views
1

einzuloggen ich die Klasse Standard-Controller für die Benutzeranmeldung bin mitLaravel 5.2 eine Bedingung hinzuzufügen, in Standard-Auth-Controller

<?php 
... 
class AuthController extends Controller 
{ 
    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 
    protected $redirectTo = '/'; 

    public function __construct() 
    { 
     $this->middleware($this->guestMiddleware(), ['except' => 'logout']); 
    } 

    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'name' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|min:6|confirmed', 
     ]); 
    } 


    protected function create(array $data) 
    { 
     return User::create([ 
      'name' => $data['name'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 
} 

Es gibt einen Weg, um diese Standard-Klasse unter Verwendung einer Bedingung in Authentifizierung hinzufügen? In Laravel Dokumentation steht geschrieben, dass es unter Verwendung von zum Beispiel

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) { 
    // The user is active, not suspended, and exists. 
} 

Aber ich habe möglich ist, eine neue Login-Methode zu erstellen oder es ist möglich Update des axisting ein?

Antwort

1

die Funktion GetCredentials() in AuthController Überschreiben:

protected function getCredentials(Request $request) 
{ 
    return [ 
     $this->loginUsername() => $request->input($this->loginUsername()), 
     'password' => $request->input('password'), 
     'active' => true 
    ]; 
} 
+0

Ist dies der beste Weg, dies in Laravel zu tun? – ultrajohn