2016-04-26 5 views
1

Я использую стандартный класс контроллера для входа пользователяLaravel 5.2 добавить условие для входа в стандартном контроллере Auth

<?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']), 
     ]); 
    } 
} 

Там в пути, используя этот стандартный класс, чтобы добавить условие в подлинности? В Laravel документации написано, что можно с помощью, например

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

Но Я, чтобы создать новый метод Войти или можно обновляют axisting один?

ответ

1

Заменять функции getCredentials() в AuthController:

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

Это лучший способ сделать это в Laravel? – ultrajohn