如何从服务容器中检索请求
无论何时需要在服务中访问当前请求,你可以将其作为参数添加到需要请求的方法中,或者注入 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 许可协议获得许可。