如何從服務容器取得 Request
當您需要在服務中存取目前的 request 時,您可以將其作為參數添加到需要 request 的方法中,或注入 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 授權條款發布。