我在整个网络应用程序中成功使用了Flash消息,并使用Laracasts Flash包。
在我的应用程序上,用户可以更改他们的电子邮件地址,并向他们发送一个链接以确认这一点。
当他们点击该链接并且已经登录时,这样可以正常工作并使用flash消息成功重定向到他们的个人资料以确认这一点。
但是,当我点击链接但未登录该帐户时,更改成功完成,然后我被重定向到登录页面,因为您无法登录而无法访问配置文件页面。这是打算的,但是我的flash消息没有显示,似乎没有包含在会话数据中。
处理更改电子邮件地址的函数包含在我的except
数组中,用于此控制器上的auth
中间件,但配置文件页面不是。
据我所知,这应该有用......有什么想法吗?
public function emailconfirm($token)
{
$result = EmailChange::where('token', '=', $token)->get();
if (!$result->isEmpty())
{
if ($result[0]->confirmed == 1)
{
flash()->error('You have already confirmed your email address using that token.');
return redirect('/user');
}
if(count(User::where('email', $result[0]->new_email)->first()) > 0)
{
flash()->error('That email address has since been used to register an account, so it cannot be verified. Please contact us via the forums if you need help.');
return redirect('/');
}
$user = User::find($result[0]->memberid);
$user->email = $result[0]->new_email;
$user->save();
$result[0]->confirmed = 1;
$result[0]->save();
flash()->success('Email successfully updated.');
return redirect('/user');
}
}
我的登录页面确实有必要的代码来显示Flash消息。