#laravel #laravel-blade #laravel-8 #laravel-session
#laravel #laravel-blade #laravel-8 #laravel-сессия
Вопрос:
Я настроил контроллер для передачи ошибок в случае сбоя проверки и другого сообщения, если оно было передано.
if ($v->fails()) {
return redirect('tickets/create')->withInput()->withErrors($v->errors());
} else {
$ticket_id = $this->salvataggio($request);
return redirect('tickets/' . $ticket_id . '/edit')
->with(['status' => 'success']);
}
В блейд-файле представления я могу прочитать переменную ошибки, но не могу прочитать статус.
@if(Session::has('status'))
<div class="alert alert-success">{{Session::get('status')}}</div>
@endif
Я прочитал и перепробовал много методов для получения сеанса, но, похоже, это не работает. Я уже использовал этот метод в предыдущем проекте с Laravel 5, но в этой версии (8.11.0) что-то изменилось?
Комментарии:
1. в каком файле блейда у вас есть эта проверка, чтобы увидеть, есть ли у вас переменная сеанса с именем ‘status’?
Ответ №1:
Сначала вы должны создать сеанс…
// Via a request instance...
$request->session()->put('status', 'success');
// Via the global helper...
session(['status' => 'success']);
И затем вы можете получить данные сеанса…
// Via a request instance...
$value = $request->session()->get('status');
// Via the global helper...
$value = session(['status']);
Ответ №2:
Вы использовали with
метод, поэтому вам следует изменить свой код, как показано ниже:
@if($status)
<div class="alert alert-success">{{$status}}</div>
@endif