路由:
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');