Laravel 5.3-如何保留会话消息,直到用户注销为止



我在注册后向用户发送欢迎消息。我已经在控制器中修改了特质方法:

public function register(Request $request)
    {
        $this->validator($request->all())->validate();
        event(new Registered($user = $this->create($request->all())));
        $this->guard()->login($user);
        Session::set('message','messages.welcome');
        return redirect($this->redirectPath())->with('message', 'messages.welcome');
    }

我也尝试过$request->session()->put('message','messages.welcome');而不是Session::set('message','messages.welcome');,但它给了我相同的结果。

,然后我在这样的视图中显示消息:

@if (session('message'))
   @include(session('message'))
@endif

但是,当我刷新视图时,消息消失了,如何保留消息直到用户注销?

尝试使用:

$request->session()->put('message','messages.welcome');

文档仅建议使用助手功能或$request进行会话:https://laravel.com/docs/5.3/session#storing#storingdata

首先写入使用语句

use IlluminateSupportFacadesSession;

然后修改您的方法:

public function register(Request $request)
   {
        $this->validator($request->all())->validate();
        event(new Registered($user = $this->create($request->all())));
        $this->guard()->login($user);
        #$request->session()->put('message', 'messages.welcome'); #this will also work
        Session::put('message', 'messages.welcome');
        return redirect($this->redirectPath());
    }

然后,当您需要时,只需致电Session::get('message');

最新更新