未根据 Laravel 5.3 中的请求设置会话存储

Session store not set on request in Laravel 5.3

我的网站出现这样的错误:

我也尝试了一些解决方案,比如在中间件网络中包装路由,但它没有用

这是我的Kernel.php

<?php

namespace App\Http;

use App\Http\Middleware\Activated;
use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{

    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    ];

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \anlutro\LaravelSettings\SaveMiddleware::class,
            \Barryvdh\Cors\HandleCors::class,
            Activated::class
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];
(The rest of file)
    }

我该如何解决:((

如果您需要会话状态、CSRF 保护等,则需要使用网络中间件。

Route::group(['middleware' => ['web']], function () {
    // your routes here
});

你的 kernel.php 应该是这样的

protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Session\Middleware\StartSession::class,
    ];

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,

            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \anlutro\LaravelSettings\SaveMiddleware::class,
            \Barryvdh\Cors\HandleCors::class,
            Activated::class
        ],

您好,您需要创建一个中间件

php artisan make:middleware AnyNameYouWant

它将为您创建一个漂亮的样板文件。

public function handle($request, Closure $next)
{
   // Your Logic
}

  return redirect('whereever you want to redirect');
}

然后将其包含在您的中间件中

   'web' => [
        \App\Http\Middleware\EncryptCookies::class,

      \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
        \anlutro\LaravelSettings\SaveMiddleware::class,
        \Barryvdh\Cors\HandleCors::class,
        \App\Http\Middleware\YourMiddleware::class
    ],    

希望对您有所帮助

如果在 web 中间件 中添加 路由 由于任何原因不起作用,请尝试将其添加到 $middlewareKernel.php

protected $middleware = [
    //...
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];