Laravel5 Session::flash()持久化多个请求


Laravel5 Session::flash() persist for more requests than only one

我正在解决一个相当奇怪的问题:

我尝试登录用户,如果凭据不正确,我将消息flash到会话并将用户重定向到登录页面。有显示的消息,这是闪现到会话。无论如何,当我重新加载页面后,会话中仍然有消息,但是,它应该消失。

你能帮我吗?下面是我的代码,我在会话中flash消息:

  public static function verify($email, $password) {
    $verified = Auth::user()->attempt([
        'email' => $email,
        'password' => $password
    ]);
    if($verified) {
            $user = Auth::user()->get();
            Session::flash('message', [
                'title' => trans('user.logged_in'.($user->sex != null ? '_'.$user->sex : '')),
                'status' => 'success'
            ]);
            return redirect(route('adminDashboard'));
        }
        else {
            Session::flash('message', [
                'title' => trans('user.bad_credentials'),
                'status' => 'error'
            ]);
            return redirect()->back();
        }
    return $verified;
}

这是页面的代码,这是显示在地址,我重定向,之后不正确的凭据(redirect()->back())

@if(Session::has('message'))
    <?php
    $message = Session::get('message');
    $status = isset($message['status']) ? $message['status'] : 'success';
    $messageString = '';
    if(isset($message['title']) && $message['title'] != '')
        $messageString = '"'.$message['title'].'"';
    if(isset($message['text']) && $message['text'] != '')
        $messageString .= ($messageString != '' ? ',' : '').'"'.$message['text'].'"';
    ?>
    <script>
        $(document).ready(function () {
            Notify({!! $messageString !!}).{{ $status }}();
        });
    </script>
@endif
我对这种行为感到很困惑。在我显示消息后,我还尝试在视图中手动调用Session::forget('message'),但消息从会话中消失,如果我立即打印session::all(),但在我重新加载后,消息再次在会话中。

非常感谢您的帮助

修改以下行:

return redirect(route('adminDashboard'));

return redirect()->to('/adminDashboard');

我在我的项目中使用相同的,它工作得很好