我在Laravel的登录表单中有这种情况,我会检查用户帐户是否处于活动状态。如果用户未处于活动状态('active' = false)
我会退出该用户(我不允许他登录)并显示一条消息,其中包含重新发送激活链接的链接,所以此链接通过在请求中查找表单的电子邮件来获取处理重新发送的控制器,但是我收到此错误的电子邮件未找到,因为在请求中,电子邮件未被包含在内!
然后生成的查询是:
"select * from
用户where
发送电子邮件is null"
,因为电子邮件未保留在请求中。
知道我做错了什么?
如果我dd($request)
正好在登录页面中,我确实看到了email
属性。但是,当点击重新发送链接时,为什么它不包含在请求中?
LoginController.php
protected function authenticated(Request $request, $user)
{
if(!$user->active){
Auth::logout();
dd($request->email); /*Here I do see the email*/
/*But here comes the problem, the email is not being kept in the request. Why???????????*/
return redirect('/login')->with('error','Please activate your account. <a href="'.route('auth.activate.resend').'"><strong>Resend</strong></a>');
}
}
登录后 dd($ request)并active
= 0
+request: ParameterBag {#39 ▼
#parameters: array:3 [▼
"_token" => "o8t6GYwMmW6SfjfX732weghwejSBzOdWpcMf8HOL"
"email" => "me@somewhere.com"
"password" => "secreto"
]
}
此时,我会显示重新发送链接,然后显示
点击resend
按钮后dd($ request)
+request: ParameterBag {#46 ▼
#parameters: []
}
我看到参数部分现在是空的:(
我也尝试过,在LoginController.php中$request->request->add(['email' => $user->email]);
,但它也不起作用。
然后如何将电子邮件数据保存在请求中,以便我可以从另一个控制器中的单击链接中使用它?还有其他解决方法吗?
答案 0 :(得分:0)