Перенаправление Laravel с данными не работает

Мое приложение представляет собой простое приложение CRUD. У меня есть действие контроллера удаления, которое перенаправляет обратно в список, когда элемент успешно удален. Сейчас я пытаюсь добавить сообщение пользователю о том, что данные были успешно удалены.

Мое действие контроллера:

public function deleteItem($id)
{
    try {
        $item = Item::findOrFail($id);
        $item->delete();
        return Redirect::to('list')->with('message', 'Successfully deleted');
    } catch (ModelNotFoundException $e) {
        return View::make('errors.missing');
    }
}

Часть моего представления list.blade.php, где я пытаюсь отобразить сообщение:

@if (isset($message))
    <div class="alert alert-success alert-dismissable">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
        {{ $message }}
    </div>
@endif

У меня проблема в том, что переменная $message всегда пуста..


person Kuurde    schedule 08.02.2014    source источник


Ответы (3)


Поскольку метод with передает данные в сеанс, вы можете получить данные, используя типичный метод Session::get.

Таким образом, вы должны получить как

$message = Session::get('message');
person Kumar V    schedule 08.02.2014

Вы можете использовать это в своем шаблоне блейда:

@if( Session::has('message') )
    <div class="alert alert-success alert-dismissable">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
        {{ Session::get('message') }}
    </div>
@endif

Ссылка: легкий блог

person Raynal Gobel    schedule 01.06.2015

Вы можете проверить APP/kernel.php и найти это:

\Illuminate\Session\Middleware\StartSession::class,

Проверьте, определен ли он более одного раза, как в этом примере:

protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Session\Middleware\StartSession::class,
];

protected $middlewareGroups = [
'web' => [
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

Вы можете прокомментировать любой из двух или удалить его. Нам нужно определить его только один раз.

person Rajesh    schedule 17.08.2017