Классы ядра Laravel 7 проблема с сеансом

#laravel #session-cookies

Вопрос:

у меня проблема с моим кодом.Я использовал эти классы в своем файле ядра в laravel

 protected $middleware = [
    // AppHttpMiddlewareTrustHosts::class,
    AppHttpMiddlewareTrustProxies::class,
    FruitcakeCorsHandleCors::class,
    AppHttpMiddlewareCheckForMaintenanceMode::class,
    IlluminateFoundationHttpMiddlewareValidatePostSize::class,
    AppHttpMiddlewareTrimStrings::class,
    IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,
    IlluminateSessionMiddlewareStartSession::class,
    IlluminateViewMiddlewareShareErrorsFromSession::class,
    SpatieCookieConsentCookieConsentMiddleware::class,
];
 

И мой код контроллера таков

         if($category->save()){
            return redirect()->route('category.index')->with('done','Category has been inserted successfully');
        }else{
            return back()->with('deny','Something went wrong');
        }
 

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

     @if (session('deny'))
    <div class="alert bg-danger text-white alert-styled-left alert-dismissible">
        <button type="button" class="close" data-dismiss="alert"><span>×</span></button>
        <span class="font-weight-semibold">Oh snap!</span> {{ session('deny') }}.
    </div>
@endif

@if (session('done'))
    <div class="alert bg-success text-white alert-styled-left alert-dismissible">
        <button type="button" class="close" data-dismiss="alert"><span>×</span></button>
        <span class="font-weight-semibold">Well done!</span> {{ session('done') }}.
    </div>
@endif
 

моя проблема в том, что мое сообщение не отображается после того, как я удалил свои классы из файла ядра, а затем отображается мое сообщение.
Как исправить это, не удаляя классы из ядра

 IlluminateSessionMiddlewareStartSession::class,
IlluminateViewMiddlewareShareErrorsFromSession::class
 

Ответ №1:

Когда вы отключаете laravel от использования сеансов php, отключая StartSession::class, вы не можете получить доступ к переменным сеанса, потому что их нет.

Если это не то, что вы хотели спросить, я должен сказать вам, что я совсем не понимаю вашего вопроса

Комментарии:

1. я только что использовал StartSession::класс в ядре для get user()->имя на страницах ошибок, таких как страница 404

2. это сработало, но мое сообщение о сеансе не работает