Як отримати запит з сервіс-контейнера
Дата оновлення перекладу 2023-06-05
Як отримати запит з сервіс-контейнера
Коли вам потрібно отримати доступ до поточного запиту у сервісі, ви можете або
додати його в якості аргументу до методів, які потребують запиту, або впровадити
сервіс request_stack
та отримати доступ до Request
, викликавши метод
getCurrentRequest():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// src/Newsletter/NewsletterManager.php
namespace App\Newsletter;
use Symfony\Component\HttpFoundation\RequestStack;
class NewsletterManager
{
protected $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public function anyMethod()
{
$request = $this->requestStack->getCurrentRequest();
// ... зробити щось з запитом
}
// ...
}
Тепер просто впровадьте request_stack
, який поводить себе як будь-який нормальний
сервіс. Якщо ви використовуєте
конфігурацію services.yml за замовчуванням ,
це відбудеться автоматично завдяки автомонтуванню.
Tip
У контролері ви можете отримати обʼєкт Request
, передавши його в якості аргументу
до вашого методу дії. Дивіться , щоб дізнатися деталі.