跳到内容

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

编辑此页

无论何时需要在服务中访问当前请求,你可以将其作为参数添加到需要请求的方法中,或者注入 request_stack 服务,并通过调用 getCurrentRequest() 方法访问 Request

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// src/Newsletter/NewsletterManager.php
namespace App\Newsletter;

use Symfony\Component\HttpFoundation\RequestStack;

class NewsletterManager
{
    public function __construct(
        protected RequestStack $requestStack,
    ) {
    }

    public function anyMethod(): void
    {
        $request = $this->requestStack->getCurrentRequest();
        // ... do something with the request
    }

    // ...
}

现在,注入 request_stack,它的行为类似于任何普通服务。如果你正在使用默认的 services.yaml 配置,这将通过自动装配自动发生。

提示

在控制器中,你可以通过将 Request 对象作为参数传递给你的 action 方法来获取它。有关详细信息,请参阅 控制器

这项工作,包括代码示例,均根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本