Laravel 5.2 перенаправление обратно с сообщением об успешном выполнении
Я пытаюсь отправить сообщение об успешном завершении на свою домашнюю страницу на laravel.
return redirect()->back()->withSuccess('IT WORKS!');
По какой-то причине переменная $success не получает никакого значения после выполнения этого кода.
Код, который я использую для отображения сообщения об успехе:
@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','NewsletterController@subscribe');
});
У кого-нибудь есть какие-нибудь идеи, почему это, похоже, не работает?
5 answers
Вам следует удалить 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
Вы можете использовать это:
return redirect()->back()->withSuccess('IT WORKS!');
И используйте это в своем представлении:
@if(session('success'))
<h1>{{session('success')}}</h1>
@endif
Все вышеперечисленное верно, но попробуйте этот прямой однострочный:
{{session()->has('message') ? session()->get('message') : ''}}
Один из способов сделать это - отправить сообщение в сеансе следующим образом:
Контроллер:
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
Вы можете ознакомиться с полной документацией здесь: Перенаправление С данными о сеансе
Я надеюсь, что это очень полезно, с уважением.
В Контроллере
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