как показать flash massage Laravel 5.7

#php #laravel #eloquent

#php #laravel #красноречивый

Вопрос:

Я хочу, чтобы на моей странице входа в систему отображалось flash-сообщение, регистрировался пользователь и
перенаправлялся обратно с сообщением об успешном завершении на страницу входа в систему как показать flash-сообщение на странице входа

это функция RegisterController.php

 public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));

    return redirect($this->redirectPath())->withMessage('message', 'my msg');        

}
  

login.blade.php

  @if (session('message'))
  <div class="alert alert-success" role="alert">
   {{ session('message') }}
    </div>
@endif
  

Комментарии:

1. пожалуйста, сначала ознакомьтесь с официальной документацией laravel, прежде чем публиковать здесь

Ответ №1:

При использовании withMessage('message', 'my msg') вы уже дали ключ к своему сообщению. Так что либо используйте просто withMessage('my msg') , либо ->with('message', 'my msg') .

И замечаю другие ответы, использующие flash отдельно, но with уже использующие flash сессию.

Ответ №2:

Добавьте Session::flash('message', 'Your message!'); в свой контроллер.

Ответ №3:

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

 return redirect($this->redirectPath())->with('message', ['my msg']); 
  

Ответ №4:

Вы можете попробовать приведенный ниже код:

В контроллере:

 use Session;
Session::flash('success','Success Message.');
Session::flash('danger','Error Message.');
Session::flash('warning','Warning Message.');
Session::flash('info','Info Message.');
  

В блейд-файле:

 @foreach (['danger', 'warning', 'success', 'info'] as $msg)
    @if(Session::has('alert-' . $msg))
        <p class="success text-{{ $msg }}">{{ Session::get('alert-' . $msg) }}</p>
    @endif
@endforeach