Ответ 1
Так как метод with сверяет данные на сеанс, вы можете получить данные с помощью типичного метода Session::get
.
Итак, вы должны получить как
$message = Session::get('message');
Мое приложение - это простое приложение CRUD. У меня есть действие контроллера удаления, которое перенаправляет обратно в список, когда элемент успешно удален. То, что я пытаюсь добавить сейчас, - это сообщение пользователю о том, что данные были успешно удалены.
My Controller Action:
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">×</button>
{{ $message }}
</div>
@endif
Проблема, которая у меня есть, заключается в том, что переменная $message
всегда пуста.
Так как метод with сверяет данные на сеанс, вы можете получить данные с помощью типичного метода Session::get
.
Итак, вы должны получить как
$message = Session::get('message');
Вы можете использовать это на своем шаблоне клинка:
@if( Session::has('message') )
<div class="alert alert-success alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
{{ Session::get('message') }}
</div>
@endif
Ссылка: easylaravelblog
Вы можете проверить 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,
],
Вы можете прокомментировать любой из двух или удалить его. Нам нужно определить это только один раз.