首页 > 解决方案 > Laravel 7内核类与会话问题

问题描述

我的代码有问题。我在 laravel 的内核文件中使用了这些类

protected $middleware = [
    // \App\Http\Middleware\TrustHosts::class,
    \App\Http\Middleware\TrustProxies::class,
    \Fruitcake\Cors\HandleCors::class,
    \App\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \Spatie\CookieConsent\CookieConsentMiddleware::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

我的问题是从内核文件中删除我的类后我的消息没有显示,然后我的消息被显示。如何在不从内核中删除类的情况下解决此问题

\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class

标签: laravelsession-cookies

解决方案


当您通过禁用 StartSession::class 禁用 laravel 使用 php 会话时,您无法访问会话变量,因为没有。

如果这不是你要问的,我必须告诉你,我根本不明白你的问题


推荐阅读