Не удается получить сеанс в представлении Laravel Blade

Я настроил контроллер для передачи ошибок в случае сбоя проверки и другого сообщения, если оно было передано.

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) что-то изменилось?


person Roberto Remondini    schedule 28.10.2020    source источник
comment
в каком блейд-файле у вас есть эта проверка, чтобы увидеть, есть ли у вас переменная сеанса с именем 'status'?   -  person lagbox    schedule 29.10.2020


Ответы (2)


Сначала вам нужно создать сеанс ...

// 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']);
person Karl Hill    schedule 28.10.2020

Вы использовали метод with, поэтому вам следует изменить свой код, как показано ниже:

@if($status)
   <div class="alert alert-success">{{$status}}</div>
@endif
person Ramin eghbalian    schedule 28.10.2020