访问事件侦听器中的路由路径


Accessing route path in event listener

路由:

user_lock:
    path:     /user/lock/{id}
    defaults: { _controller: SiteMainBundle:Frontend'Default:userLock }
    methods:  [GET]

正如您所知,上面的路由器将创建一个类似htt://mysite.com/app_dev.php/user/lock/66的URL,所以我只需要在下面的事件侦听器中获得它的/user/lock/66部分。我该怎么做?

我试过$request->getBaseUrl(),但$request->getBasePath()没有给我想要的。

YAML

services:
    kernel.listener.kernel_controller:
        class: Site'MainBundle'EventListener'Controller'KernelController
        tags:
            - { name: kernel.event_listener, event: kernel.controller, method: onKernelController }

类别

<?php
namespace Site'MainBundle'EventListener'Controller;
use Symfony'Component'HttpKernel'Event'FilterControllerEvent;
class KernelController
{
    public function onKernelController(FilterControllerEvent $event)
    {
        $request = $event->getRequest();
        $this->writeLog('ROUTE', $request->attributes->get('_route'));
        $this->writeLog('CONTROLLER', $request->attributes->get('_controller'));
        $this->writeLog('ROUTE PARAMETERS', $request->attributes->get('_route_params'));
        $this->writeLog('ROUTE PATH', ??????????????????????????????);
    }
} 

我想,你正在寻找

$request->server->get('PATH_INFO');