2016-07-29 120 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