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');
});

У кого-нибудь есть какие-нибудь идеи, почему это, похоже, не работает?

Author: Arcesilas, 2016-05-22

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
 62
Author: Alexey Mezenin, 2017-05-23 12:18:18

Вы можете использовать это:

return redirect()->back()->withSuccess('IT WORKS!');

И используйте это в своем представлении:

@if(session('success'))
    <h1>{{session('success')}}</h1>
@endif
 13
Author: Mohammad Rajabloo, 2017-12-08 23:37:53

Все вышеперечисленное верно, но попробуйте этот прямой однострочный:

{{session()->has('message') ? session()->get('message') : ''}}

 3
Author: Laravellous Martins, 2018-05-11 00:59:23

Один из способов сделать это - отправить сообщение в сеансе следующим образом:

Контроллер:

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

Вы можете ознакомиться с полной документацией здесь: Перенаправление С данными о сеансе

Я надеюсь, что это очень полезно, с уважением.

 2
Author: Radames E. Hernandez D.L.R., 2018-05-30 20:28:57

В Контроллере

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">&times;</a>
     <strong> {{ session('update') }} </strong>
  </div>
@endif
 0
Author: Genius in trouble, 2018-09-18 06:31:21