Laravel 7 不显示闪信

Laravel 7 does not display flash message

Laravel Framework 7.25.0
PHP 7.2 on LARAGON

不知道是不是和我的路线有关系,我想可能是我胡说八道。

没有显示即时消息,我只能通过将其设置为 Session::put、在视图中检索然后删除它来显示消息。

Session::put('success', 'example');
return redirect()->route('example', array('id_example' => 'example'));

我用with,withErrors的时候,前面总是闪returns null.

return redirect()->route('example', array('id_example' => 'example'))->with('success', 'Text');
or
return redirect()->back()->withErrors( ['example'] );
or
Session::flash('success', 'example');

在视图中我尝试了几种方法,它们的结果都是一样的。除非我手动使用 Session::put 来存储 return 消息。

@if (Session::has('error'))
@if ($errors->any())
@if (Session::has('success'))
@if (session()->has('success'))

这是我在路线上使用的模型。

Route::namespace('Front')->group(function(){
    # Homepage
     Route::get('/', 'ExampleFrontController@Home')->name('home');
})

Route::namespace('Admin')->group(function(){
    # Login
     Route::get('/admin/login', 'ExampleAdminController@Index')->name('admin.login');
})

我使用 Session::put 没有问题,但是,我的表单请求规则中的 returns 也没有显示,这给我带来了问题。

问完问题后,我决定去考一个还没考的

我评论了内核class:StartSession::class和ShareErrorsFromSession::class。

按计划,会话停止工作。

在我的例子中,我不得不将两个 classes 从 $ middlewareGroups 移动到 $ middleware,这解决了我上面的问题。

我改变了:

    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,
    ];

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:60,1',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];

为此

    protected $middleware = [
        // \App\Http\Middleware\TrustHosts::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::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,
    ];

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        #    \Illuminate\Session\Middleware\StartSession::class,
        #    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        #    \Illuminate\Session\Middleware\AuthenticateSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],