2016-04-26 61 views
1

登錄的情況我使用的登錄用戶Laravel 5.2添加標準驗證控制器

<?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