首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未根据请求在Laravel 5.3中设置会话存储

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

Stack Overflow用户
提问于 2017-07-07 04:31:48
回答 3查看 4K关注 0票数 0

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

我还尝试了一些解决方案,比如在中间件web中封装路由--它没有工作

这是我的Kernel.php

代码语言:javascript
复制
<?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)
    }

我如何解决这个问题:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-07 04:37:20

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

代码语言:javascript
复制
Route::group(['middleware' => ['web']], function () {
    // your routes here
});

您的kernel.php应该是这样的

代码语言:javascript
复制
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
        ],
票数 4
EN

Stack Overflow用户

发布于 2017-07-07 05:05:33

如果在web中间件中添加路由不起作用,那么尝试将其添加到$middlewareKernel.php

代码语言:javascript
复制
protected $middleware = [
    //...
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];
票数 1
EN

Stack Overflow用户

发布于 2017-07-07 04:39:42

嗨,你需要创建一个中间件

代码语言:javascript
复制
php artisan make:middleware AnyNameYouWant

它会为你创造一个很好的样板。

代码语言:javascript
复制
public function handle($request, Closure $next)
{
   // Your Logic
}

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

然后将其包含在中间件中。

代码语言:javascript
复制
   '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
    ],    

我希望这能帮到你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44962605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档