加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为什么Symfony 2.8服务中的请求对象是空的?

发布时间:2020-12-13 17:00:59 所属栏目:PHP教程 来源:网络整理
导读:在Symfony 2.8服务中有这项服务: services: app.admin_menu: class: GRFAdminPanelBundleServiceMenu shared: false arguments: [@request_stack] 并在服务构造中: public function __construct(RequestStack $request){ exit(var_dump($request));} 并
在Symfony 2.8服务中有这项服务:

services:
    app.admin_menu:
        class: GRFAdminPanelBundleServiceMenu
        shared: false
        arguments: [@request_stack]

并在服务构造中:

public function __construct(RequestStack $request)
{
    exit(var_dump($request));
}

并在浏览器中:

object(SymfonyComponentHttpFoundationRequestStack)#261 (1) { ["requests":"SymfonyComponentHttpFoundationRequestStack":private]=> array(0) { } }

如何在服务中访问当前请求???现在当前请求为空

解决方法

我有一个 similar issue.

解决方案是尽可能晚地尝试访问RequestStack对象,以便内核有机会填充它.

基本上,不要尝试在构造函数中访问它.

我把它的访问权移到了一个后来调用的方法中,它为我解决了它.

private $requestStack;

public function __construct(RequestStack $request)
{
    $this->requestStack = $request;
}

public function outputRequestStack() {
    exit(var_dump($this->requestStack));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读