2017-07-03 125 views
1

这次我正在学习验证。我无法为我的登录表单执行此操作... 我的代码现在看起来像这样,它仅在出现错误时起作用,但此代码不想登录我的用户。我的代码中应该如何工作,为什么现在不工作?我不知道这个验证是如何知道哪个电子邮件和密码应该与登录和从哪个表进行比较?我应该在某处添加此信息吗?Laravel验证登录

public function login(Request $request) 
    { 
    $this->validate($request, [ 
     'email'   => 'required|max:255|email', 
     'password'   => 'required|confirmed', 
    ]); 

     return redirect()->intended('/panel'); 

    } 

回答

1

你可以考虑增加性状AuthenticatesUsers到你的控制器:

class LoginController extends Controller { 

    use \Illuminate\Foundation\Auth\AuthenticatesUsers; // <- add this line 

    // ... 
} 

然后你就可以把你的login方法,一切都将正常工作。更多信息here

但是,如果你想建立自己的认证系统(,我不建议),你必须挖掘更多。你可以看看here。然后像这样更新你的控制器:

public function login(Request $request) 
{ 
    $this->validate($request, [ 
     'email'   => 'required|max:255|email', 
     'password'   => 'required|confirmed', 
    ]); 
    if (Auth::attempt(['email' => $email, 'password' => $password])) { 
     // Success 
     return redirect()->intended('/panel'); 
    } else { 
     // Go back on error (or do what you want) 
     return redirect()->back(); 
    } 

}