gpt4 book ai didi

symfony - 特定操作的响应事件监听器

转载 作者:行者123 更新时间:2023-12-02 14:40:16 25 4
gpt4 key购买 nike

我有一个事件监听器,其方法如下所示

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 }

问题是监听器为该用户 Controller 中执行的每个操作运行,这是我不想要的。

我的问题是如何限制仅在响应特定操作时运行。让我们说 editUser()

我找不到明确显示的文档

最佳答案

您可以检查$controller[1]值 - 它包含 Controller 的操作方法名称:

if ($controller[0] instanceof UserController) {

// limit this for Controller action editUser() only
if ($controller[1] === 'editUserAction') {

...

关于symfony - 特定操作的响应事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22763541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com