Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony RequestStack::$requests为空_Symfony_Request - Fatal编程技术网

Symfony RequestStack::$requests为空

Symfony RequestStack::$requests为空,symfony,request,Symfony,Request,我正在调查Symfony框架2.8版的一个bug 当我创建一个服务并将request\u stack服务注入其中时,调用RequestStack::getCurrentRequest()方法将导致一个空$request,即使我确实有一个请求,因为我处于Symfony请求/响应生命周期中 RequestStack::$requests是在其生命周期中创建的请求Symfony数组,而getCurrentRequest()只返回最后一个请求。我不明白的是,为什么$requests数组是空的,并且在调用

我正在调查Symfony框架2.8版的一个bug

当我创建一个服务并将
request\u stack
服务注入其中时,调用
RequestStack::getCurrentRequest()
方法将导致一个空
$request
,即使我确实有一个请求,因为我处于Symfony请求/响应生命周期中

RequestStack::$requests
是在其生命周期中创建的请求Symfony数组,而
getCurrentRequest()
只返回最后一个请求。我不明白的是,为什么
$requests
数组是空的,并且在调用
getCurrentRequest()
方法时没有向其中添加请求


有人能告诉我为什么以及如何修复这个bug吗?我假设有一个事件侦听器,我的服务优先于它,但我找不到修复它的位置和方法

请提供合适的代码,让我们重现这个问题。这里肯定出了问题。除非您是从CLI调用,否则堆栈中应该有一个请求。将
request$request
添加到控制器操作参数时,是否存在请求为null的相同问题?可能是因为您正在从构造函数调用getCurrentRequest。创建服务时,请求处理尚未开始。在实际需要请求时调用getCurrentRequest。顺便说一句,这不是一个bug,而是一个操作符错误。您好,是的,我确实从我的服务的构造函数中调用了getCurrentRequest(),但是即使我在setter中调用它,它也不起作用。如果我直接注入请求服务(这是一种糟糕的做法,因为必须使用RequestStack),Symfony会告诉我请求属于另一个作用域,因为我是在捆绑包/依赖项中创建此服务的,而不是在主应用程序中创建此服务的,但如果我强制注入,它会工作。谢谢你的帮助!