$id
всегда равно нулю, когда не должно быть. Я могу получить значение $ id через мой контроллер, но не из моего EventSubscriber.
Как правильно извлечь параметры из URL-адреса через моего EventSubscriber с FilterControllerEvent
?
class TestVerificationSubscriber implements EventSubscriberInterface
{
private $testService;
public function __construct(TestService $testService)
{
$this->testService = $testService;
}
/**
* Returns an array of event names this subscriber wants to listen to.
*
* The array keys are event names and the value can be:
*
* * The method name to call (priority defaults to 0)
* * An array composed of the method name to call and the priority
* * An array of arrays composed of the method names to call and respective
* priorities, or 0 if unset
*
* For instance:
*
* * array('eventName' => 'methodName')
* * array('eventName' => array('methodName', $priority))
* * array('eventName' => array(array('methodName1', $priority), array('methodName2')))
*
* @return array The event names to listen to
*/
public static function getSubscribedEvents()
{
return array(
KernelEvents::CONTROLLER => 'onKernelController',
);
}
public function onKernelController(FilterControllerEvent $event){
$controller = $event->getController();
/*
* $controller passed can be either a class or a Closure.
* This is not usual in Symfony but it may happen.
* If it is a class, it comes in array format
*/
if (!is_array($controller)) {
return;
}
if ($controller[0] instanceof TestVerificationController) {
//this always returns null
$id = $event->getRequest()->query->get('id');
if(!$id){
throw new CustomApiException(Response::HTTP_BAD_REQUEST, "Could not verify that the test exists.");
}
$this->testService->checkAndUpdateWithId($id);
}
}
}
Мое единственное предположение на данный момент заключается в том, что, возможно, в данный конкретный момент Symfony не полностью обработал запрос?