Я пытаюсь перенаправить на предыдущую страницу с сообщением, когда есть фатальная ошибка.
App::fatal(function($exception)
{
return Redirect::back()->with('msg', 'The Message');
}
В представлении пытается получить доступ к MSG с
Sessions::get('msg')
Но ничего не делается, я что-то здесь не так делаю?
s
и добавить,use
где это необходимо. Помимо этого - должно работать.Ответы:
Пытаться
и внутри вашего взгляда на это
источник
return Redirect::back()->with('msg', 'The Message');
как получить "MSG" здесь?Session::has('msg')
Session::has('msg')
и «MSG» не существует.withErrors('some error')
- так должно быть строкой , а не массив.контроллер
Лезвие:
источник
return redirect()->back()->with('success', 'your message here');
Альтернативный подход будет
контроллер
Посмотреть
источник
В Laravel 5.4 у меня работало следующее:
источник
withErrors()
метода в ответе массив из двух элементов:['msg', 'The Message']
. См. API для приемлемых параметров: laravel.com/api/4.2/Illuminate/Http/…withErrors()
метода является массив с одним элементом, который являетсяkey => value
парой, где значение является массивом. 5.4 API: laravel.com/api/5.4/Illuminate/Http/…У вас есть ошибка (опечатка):
Должно быть:
Я думаю, теперь это должно работать, это делает для меня.
источник
Просто установите флэш-сообщение и перенаправьте обратно с вашего контроллера функции.
И тогда вы можете получить сообщение в файле блэйд вида.
источник
{!! Session::get("msg", '') !!}
должно быть достаточно.get()
уже проверяет, существует ли ключ и возвращает значение по умолчанию в противном случае.В Laravel 5.5 :
В представлении, используя Blade:
источник
В laravel 5.8 вы можете сделать следующее:
и в лезвии:
источник
Я перестал писать это для laravel в пользу пакета Laracasts, который обрабатывает все это для вас. Он действительно прост в использовании и сохраняет ваш код в чистоте. Есть даже ларакаст, в котором рассказывается, как его использовать. Все, что вам нужно сделать:
Вытащите пакет через Composer.
Включите поставщика услуг в app / config / app.php.
Добавьте псевдоним фасада к этому же файлу внизу:
Вытащите HTML в представление:
Справа от сообщения есть кнопка закрытия. Это зависит от jQuery, поэтому убедитесь, что он добавлен перед загрузкой.
необязательные изменения:
Если вы не используете загрузчик или хотите пропустить включение флеш-сообщения и написать код самостоятельно:
Если вы хотите просмотреть извлеченный HTML-код
@include('flash::message')
, вы можете найти его вvendor/laracasts/flash/src/views/message.blade.php
.Если вам нужно изменить партиалы, сделайте:
Теперь два представления пакета будут расположены в каталоге `app / views / packages / laracasts / flash / '.
источник
в контроллере
Например
в блейд-файле . Сообщение будет храниться в сеансе, а не в переменной.
Например
источник
Для Laravel 5.5+
контроллер:
Лезвие:
источник
Я столкнулся с той же проблемой, и это сработало.
контроллер
Посмотреть
источник
Для Laravel 5.6. *
Пробуя некоторые из предоставленных ответов в Laravel 5.6. *, Ясно, что были некоторые улучшения, которые я собираюсь опубликовать здесь, чтобы упростить задачу тем, кто не смог найти решение с остальными ответами.
ШАГ 1:Перейдите в свой файл контроллера и добавьте его перед классом:
ШАГ 2: Добавьте это, где вы хотите вернуть перенаправление.
ШАГ 3. Перейдите к файлу блейда и отредактируйте его следующим образом
Тогда протестируйте и поблагодарите меня позже.
Это должно работать с laravel 5.6. * И, возможно, 5.7. *
источник
Для Laravel 3
Только один ответ на @giannis christofakis ответ; для тех, кто использует Laravel 3 заменить
с участием:
источник
Ларавел 5.6. *
контроллер
Шаблон лезвия
Enyoj
источник
Я получил это сообщение, когда я попытался перенаправить как:
Когда правильный путь это:
источник
Ларавел 5.8
контроллер
лопасть
источник