我試圖到Laravel 4.1應用程序升級到5.1 WAMP,並得到這個錯誤:Laravel 5.1 - 會話店沒有設置要求
RuntimeException in Request.php line 775: Session store not set on request.
in D:\wamp\www\laravel-5.1\vendor\laravel\framework\src\Illuminate\Http\Request.php line 775 at Request->session() in D:\wamp\www\laravel-5.1\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php line 137 at VerifyCsrfToken->addCookieToResponse(object(Request), object(Response)) in VerifyCsrfToken.php line 64 at VerifyCsrfToken->handle(object(Request), object(Closure)) at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 30 at Pipeline->Illuminate\Routing{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 96 at ControllerDispatcher->callWithinStack(object(BrowseController), object(Route), object(Request), 'getBrowseRecent') in ControllerDispatcher.php line 54 at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\BrowseController', 'getBrowseRecent') in Route.php line 174 at Route->runController(object(Request)) in Route.php line 140 at Route->run(object(Request)) in Router.php line 703 at Router->Illuminate\Routing{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in ViewThrottleMiddleware.php line 55 at ViewThrottleMiddleware->handle(object(Request), object(Closure)) at call_user_func_array(array(object(ViewThrottleMiddleware), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 30 at Pipeline->Illuminate\Routing{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 at Pipeline->then(object(Closure)) in Router.php line 705 at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 678 at Router->dispatchToRoute(object(Request)) in Router.php line 654 at Router->dispatch(object(Request)) in Kernel.php line 246 at Kernel->Illuminate\Foundation\Http{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) in CheckForMaintenanceMode.php line 44 at CheckForMaintenanceMode->handle(object(Request), object(Closure)) at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124 at Pipeline->Illuminate\Pipeline{closure}(object(Request)) at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103 at Pipeline->then(object(Closure)) in Kernel.php line 132 at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99 at Kernel->handle(object(Request)) in index.php line 54
的storage
文件夾是可寫的,並且使用的會話驅動程序file
。我搜索了整個項目的session()
,但發現它沒有。我能做些什麼來糾正這個錯誤?謝謝!
的session.php
如下:
<?php
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => null,
'secure' => false,
];
編輯1:我發現這個問題是在控制器中。有一條線:
$this->middleware('csrf', [ 'on' => 'post' ]);
我評論它,它的工作。但我沒有弄清楚爲什麼它導致了問題呢。
什麼時候出現這個錯誤? –
請顯示'sessions.php'配置。並且,您是否正在遵循文檔升級過程? –
我檢查了升級文檔,並嘗試從App \ Http \ Kernel中刪除'App \ Http \ Middleware \ VerifyCsrfToken',但它沒有幫助。 csrf仍然在'php artisan route:list'中顯示爲中間件。這是原因嗎? –