如何从服务容器中检索请求

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.2,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

如何从服务容器中检索请求

每当您需要访问服务中的当前请求时,您可以将其作为参数添加到需要该请求的方法中,或者将request_stack服务和访问请求通过调用getCurrentRequest ()方法:

12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
名称空间AppBundle欧宝app在哪里找通讯使用欧宝娱乐app下载地址组件HttpFoundationRequestStack欧宝app在哪里找NewsletterManager受保护的requestStack公共函数__construct(RequestStackrequestStack->requestStack =requestStack;}公共函数anyMethod()请求->requestStack->getCurrentRequest ();/ /……对请求做些什么/ /……

现在,注入request_stack,它的行为像任何正常的服务:

  • YAML
  • XML
  • PHP
1 2 3 4 5
# src / AppBundle /资源/ config / services.yml服务:欧宝app在哪里找newsletter_manager:类:AppBundle 欧宝app在哪里找\通讯\ NewsletterManager参数:[" @request_stack "]

提示

如果将控制器定义为服务,则可以获得请求对象,而不注入容器,通过将其作为操作方法的参数传入。看到控制器获取详细信息。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。