Symfony 2 事件侦听器并获取 URL 参数

Symfony 2 Event Listener And Get URL Parameters

我有这个事件侦听器 class :

<?php

namespace Vdv\TimesheetsBundle\Event;

use Oneup\UploaderBundle\Event\PostPersistEvent;
use Symfony\Component\HttpFoundation\Request;

class UploadListener {

public function __construct($doctrine) {
    $this->doctrine = $doctrine;
}

public function onUpload(PostPersistEvent $event) {
    $request = $event->getRequest();
}

}

和这个 url :

http://localhost/vdvinfra/web/app_dev.php/timesheet/add/1/252

我想从 url 中获取一些参数(id)。 我怎样才能在事件侦听器中获取它 class。 当我 var_dump this...

时变量 $_GET 为空

谢谢!

您可以将 @request_stack 注入您的事件侦听器,就像您已经对 doctrine 所做的那样:

public function __construct($doctrine, $requestStack) {
    $this->doctrine = $doctrine;
    $this->request = $requestStack->getCurrentRequest();

    // access the parameters like this:
    $allParams = $this->request->attributes->all();
    $someParam = $this->request->attributes->get('parameter_name');
}