首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel5.1-未根据请求设置会话存储

Laravel5.1-未根据请求设置会话存储
EN

Stack Overflow用户
提问于 2015-12-24 01:46:52
回答 1查看 5K关注 0票数 1

我试图在WAMP上将Laravel 4.1应用程序升级到5.1,并得到了以下错误:

RuntimeException第775行中的Request.php :未根据请求设置会话存储。 在D:\wamp\www\laravel-5.1\vendor\laravel\framework\src\Illuminate\Http\Request.php第775行中,请求->session()在D:\wamp\www\laravel-5.1\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php中,第137行在VerifyCsrfToken->addCookieToResponse(object(Request),对象(响应)处,在VerifyCsrfToken.php第64行,在VerifyCsrfToken->句柄(对象(请求),对象(闭包))在call_user_func_array(array(object(VerifyCsrfToken),在Pipeline->Illuminate\Pipeline{closure}(object(Request)) at Pipeline->Illuminate\Routing{closure}(object(Request)) at call_user_func(object(闭包),object(Request))的Pipeline.php第124行(object(Call_user_func),object(Request))在Pipeline.php第30行的call_user_func(object(闭包))中的‘Pipeline.php’数组(对象(请求),object(闭包))。对象(请求)在ControllerDispatcher->callWithinStack(object(BrowseController),对象(路由)处,Pipeline.php行第54行中的对象(请求)->调度(对象(路由),对象(请求),对象(请求),‘App\Http\Controller\BrowseController’,'getBrowseRecent')在Route.php 174号线在路由->runController(对象(请求))在Route.php第140号线在路由->运行(对象(请求))在Router.php第703行在Route.php at call_user_func(object(闭包),object(Request))在Pipeline.php第139行在ViewThrottleMiddleware.php第55行在ViewThrottleMiddleware->handle(object(Request),call_user_func_array(array(object(ViewThrottleMiddleware),‘句柄’处的对象(闭包),在Pipeline->Illuminate\Pipeline{closure}(object(Request)) at call_user_func(object(闭包))的Pipeline.php第124行中的数组(object(Request),object(闭包)),Pipeline.php第30行( Pipeline->Illuminate\Routing{closure}(object(Request)) at call_user_func(object(闭包))中的object(Request))。对象(请求)在Pipeline.php行103中位于管道上->然后在Router.php行705 at路由器->runRouteWithinStack(对象(路由),对象(请求))在Router.php行678 at路由器->DispatchTo路由(对象(请求))在Router.php第654行的路由器->调度(对象(请求))在Kernel.php第246行的call_user_func(对象(关闭)),对象(请求)在Pipeline->Illuminate\Pipeline{closure}(object(Request))处的Pipeline.php第139行( CheckForMaintenanceMode.php第44行)在call_user_func_array(array(object(CheckForMaintenanceMode),‘句柄’处的CheckForMaintenanceMode.php对象(闭包),在Pipeline.php第124行中的数组(对象(请求)、对象(闭包))(在call_user_func(object(闭包)处))。对象(请求)在管道处的Pipeline.php行103中,然后( Kernel.php行中的对象(闭包))在Kernel.php行132处,在Kernel.php中,在内核处,第99行,在内核处->句柄(对象(请求)),在index.php行54中。

storage文件夹是可写的,使用的会话驱动程序是file。我搜索了整个项目的session(),但没有找到它。我能做些什么来纠正这个错误?谢谢!

session.php如下:

代码语言:javascript
运行
复制
<?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:我发现了控制器中的问题。有一条线:

代码语言:javascript
运行
复制
$this->middleware('csrf', [ 'on' => 'post' ]);

我把它评论掉了,它起了作用。但我还不知道为什么会有这个问题。

EN

回答 1

Stack Overflow用户

发布于 2015-12-25 19:33:20

看看@Cas Bloem --他在这里的回答--这使我吃惊地说:

Laravel - Session store not set on request

这就是为什么它不适合我。因为您使用的是一个与CSRF令牌相匹配的会话(这是我最好的猜测,我自己对Laravel来说还是新手)。

另外,如果您转到app->http->中间件->VerifyCsrfToken,您可以将路由添加到不会被检查以进行CSRF验证的数组中。这个加Cas的补丁(在routes.php中的不同区域放置路径)解决了我的问题。我现在只是在本地主机上开发/学习,但需要稍后实现。

希望这能帮上忙/把事情弄清楚!

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

https://stackoverflow.com/questions/34446228

复制
相关文章

相似问题

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