Laravel 5.2 перенаправляет назад сообщение об успешном завершении
Я пытаюсь получить сообщение об успешной работе на моей домашней странице на laravel.
return redirect()->back()->withSuccess('IT WORKS!');
По какой-то причине переменная $success не получает никакого значения после запуска этого кода.
Код, который я использую для отображения сообщения succes:
@if (!empty($success))
<h1>{{$success}}</h1>
@endif
Я добавил домашнюю страницу и страницу информационного бюллетеня в группу промежуточного программного обеспечения веб-сайта в routes.php следующим образом:
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/', function () {
return view('home');
});
Route::post('/newsletter/subscribe','[email protected]');
});
Кто-нибудь знает, почему это не работает?
Ответы
Ответ 1
Вы должны удалить web
промежуточное ПО из routes.php
. Добавление web
промежуточного программного обеспечения вручную вызывает проблемы с сеансом и запросами в Laravel 5.2.27 и выше.
Если это не помогло (по-прежнему сохраняйте routes.php
без промежуточного программного обеспечения в Интернете), вы можете попробовать немного другой подход:
return redirect()->back()->with('message', 'IT WORKS!');
Отображение сообщения, если оно существует:
@if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
@endif
Ответ 2
вы можете использовать это:
return redirect()->back()->withSuccess('IT WORKS!');
и используйте это в своем представлении:
@if(session('success'))
<h1>{{session('success')}}</h1>
@endif
Ответ 3
Все вышесказанное верно, но попробуйте этот прямой однострочный:
{{session()->has('message')? session()->get('message'): ''}}
Ответ 4
Один из способов сделать это - отправить сообщение в сеансе следующим образом:
контроллер:
return redirect()->back()->with('success', 'IT WORKS!');
Вид:
@if (session()->has('success'))
<h1>{{ session('success') }}</h1>
@endif
И другой способ сделать это - просто создать сеанс и прямо поместить текст в виде:
Контроллер:
return redirect()->back()->with('success', true);
Вид:
@if (session()->has('success'))
<h1>IT WORKS!</h1>
@endif
Вы можете проверить полную документацию здесь: Перенаправление с данными с разбитыми сеансами
Я надеюсь, что это очень полезно.
Ответ 5
контроллер:
return redirect()->route('subscriptions.index')->withSuccess(['Success Message here!']);
лопасть
@if (session()->has('success'))
<div class="alert alert-success">
@if(is_array(session()->get('success')))
<ul>
@foreach (session()->get('success') as $message)
<li>{{ $message }}</li>
@endforeach
</ul>
@else
{{ session()->get('success') }}
@endif
</div>
@endif
Вы всегда можете сохранить эту часть как отдельный блейд файл и легко включить его. передний пример:
<div class="row">
<div class="col-md-6">
@include('admin.system.success')
<div class="box box-widget">
Ответ 6
В контроллере
return redirect()->route('company')->with('update', 'Content has been updated successfully!');
Ввиду
@if (session('update'))
<div class="alert alert-success alert-dismissable custom-success-box" style="margin: 15px;">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong> {{ session('update') }} </strong>
</div>
@endif
Ответ 7
Я разрабатываю проект asp.net core 2.1, и мне нужно включить большие загрузки файлов на мой сервер. Любая помощь.
Ответ 8
Вы можете использовать laravel MessageBag для добавления наших собственных сообщений в существующие сообщения.
Для использования MessageBag вам необходимо использовать:
use Illuminate\Support\MessageBag;
В контроллере:
MessageBag $message_bag
$message_bag->add('message', trans('auth.confirmation-success'));
return redirect('login')->withSuccess($message_bag);
Надеюсь, это поможет кому-нибудь.