我目前正在尝试实现一个需要在每个操作之前执行的控制器侦听器:
class AuthenticationListener
{
/**
* @var TokenStorage
*/
private $tokenStorage;
/**
* @var $controller
*
* Controller that is accessed
*/
private $controller;
/**
* @var string $class full class path of controller
*/
private $class;
public function __construct(TokenStorage $tokenStorage)
{
$this->tokenStorage = $tokenStorage;
}
public function onKernelController(FilterControllerEvent $event)
{
// Get controller after redirect here?
$this->controller = $event->getController()[0];
$this->class = get_class($this->controller);
}
}
但是,当存在重定向时,此侦听器接收RedirectController而不是用户所针对的控制器。无论如何得到重定向后的控制器名称?
答案 0 :(得分:0)
当然这是可能的,通常你可以拨打Request::getParameter('_controller')
并获得原始控制器。