Я отправляю приветственное сообщение пользователю после регистрации. Я изменил метод 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');