这次我正在学习验证。我不能为我的登录表单执行此操作... 我的代码现在看起来像这样,它只在我有错误时才有效,但是这段代码不想登录我的用户。在我的代码中应该使用什么以及为什么它现在不起作用?我不知道这个验证如何知道哪个电子邮件和密码应该与登录和从哪个表进行比较?我应该在某处添加此信息吗?
public function login(Request $request)
{
$this->validate($request, [
'email' => 'required|max:255|email',
'password' => 'required|confirmed',
]);
return redirect()->intended('/panel');
}
答案 0 :(得分:2)
您可以考虑将特征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();
}
}