#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