Symfony 2.8 - 控制器监听器,重定向后获取控制器

时间:2017-12-13 12:39:11

标签: symfony

我目前正在尝试实现一个需要在每个操作之前执行的控制器侦听器:

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而不是用户所针对的控制器。无论如何得到重定向后的控制器名称?

1 个答案:

答案 0 :(得分:0)

当然这是可能的,通常你可以拨打Request::getParameter('_controller')并获得原始控制器。