2016-07-29 118 views
0

你好朋友我正在使用用戶表列像(USERNAME,EMAIL,PASSWORD) 如果我改變列名作爲小字母工作正常。更改列名作爲上限沒有工作給我任何建議登錄不工作Laravel 5

這是我的控制器

public function postLogin(Request $request) 
    { 
    $this->validate($request, array('username' => 'required', 'password' => 'required')); 
    $credentials = $request->only('USERNAME', 'PASSWORD'); 

    if (Auth::validate($credentials)) 
    { 
     $user = Auth::getLastAttempted(); 
     Auth::login($user, $request->has('remember')); 
     return redirect()->intended($this->redirectPath()); 
    } 
    return redirect($this->loginPath()) 
    ->withInput($request->only('USERNAME', 'remember')) 
    ->withErrors([ 
     'username' => $this->getFailedLoginMessage(), 
    ]); 

} 
+0

「不是爲我工作」完全不說明問題。清除你收到的錯誤。 –

+0

無效的用戶名和密碼這是錯誤 – MGS

回答

0

您使用Laravel同時獲得用戶提供商(EloquentUserProviderDatabaseUserProvider)預期密碼存儲小寫字母密碼字段。

爲了使認證與PASSWORD字段一起工作,你需要做2件事情。

首先,讓供應商知道用戶的密碼存儲在PASSWORD列中。您可以通過實現getAuthPassword方法在用戶模型做到這一點:

public function getAuthPassword() { 
    return $this->PASSWORD; 
} 

其次,密碼需要存儲與密碼憑據陣列傳遞給驗證::驗證鍵()。您需要更改表單字段的名稱的名稱是用戶輸入密碼進入到密碼或創建手動證書數組:

$credentials = [ 
    'USERNAME' => $request->get('USERNAME'), 
    'password' => $request->get('PASSWORD'), 
]; 
+0

工作正常..謝謝 – MGS