跳到內容

如何從服務容器取得 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 授權條款發布。
TOC
    版本