Laravel 5.3 – Как сохранить сообщение сеанса до тех пор, пока пользователи не выйдут из системы

Я отправляю приветственное сообщение пользователю после регистрации. Я изменил метод trait в моем контроллере следующим образом:

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-data

Первый оператор записи записи

 use Illuminate\Support\Facades\Session; 

затем измените свой метод следующим образом:

 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');