Не удается получить сеанс в режиме блейда Laravel

#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