通过auth中间件重定向时不呈现Flash消息

时间:2016-08-10 23:57:11

标签: php laravel laravel-5.1

我在整个网络应用程序中成功使用了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消息。

0 个答案:

没有答案