2017-07-07 74 views
1

我的网站得到了这样的错误:会话存储在Laravel没有设置要求5.3

enter image description here

我也试过在中间件的网络状包装路线一些解决它,它不工作

这里是我的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) 
    } 

我怎样才能解决:((

+2

的可能的复制[Laravel - 对请求未设置会话存储器(https://stackoverflow.com/questions/34449770/laravel-session-store-not-set-on-request) –

回答

2

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

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 
     ], 
+0

我也尝试这但它没有工作 –

+0

同样的事情:((我也运行php工匠选择清除缓存 –

+1

尝试运行作曲家dump-autoload然后检查 – Exprator

0

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

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

我希望这有助于

0

如果添加网络中间件里面你路线以任何理由不工作,然后尝试添加这个以$中间件分成Kernel.php

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