我有一个事件侦听器,其中的方法看起来像这样。
我的services.yml文件如下所示:
问题在于监听器在执行该用户控制器中的每个操作时都会运行,而我不想要这样。我的问题是如何限制它只在特定操作的响应中运行。比如说
public function onKernelResponse(FilterResponseEvent $event,EntityManager $entityManager)
{
$controller = $event->getController();
if (!is_array($controller)) {
return;
}
if ($controller[0] instanceof UserController) {
//@TODO limit this for Controller action editUser() only
$response = $event->getResponse()->getContent();
$responseDecoded = json_decode($response);
if ($responseDecoded instanceof UserProperties) {
}
}
}
我的services.yml文件如下所示:
update_user_controller_listener_marking_tasks:
class: Company\UserResultBundle\EventListener\UserEditListener
arguments: [@doctrine.orm.entity_manager]
tags:
- { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }
问题在于监听器在执行该用户控制器中的每个操作时都会运行,而我不想要这样。我的问题是如何限制它只在特定操作的响应中运行。比如说
editUser()
?我没有在文档中找到明确显示这一点。