Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如何实现dotrine实体事件侦听器_Symfony_Doctrine Orm_Symfony 4.4 - Fatal编程技术网

Symfony 如何实现dotrine实体事件侦听器

Symfony 如何实现dotrine实体事件侦听器,symfony,doctrine-orm,symfony-4.4,Symfony,Doctrine Orm,Symfony 4.4,我正在使用Symfony 4.4,首先我想检查我找到的条令版本: 在作曲家中: doctrine/orm": "^2.4.5 在symfony.lock中: "doctrine/orm": { "version": "v2.7.0" }, 我必须相信哪一个 所以主要的问题是,我试图实现一个条令实体侦听器,但它对我不起作用: 应用程序\实体\管理员: services.yaml: App\EventListener\Doctrine\AdminListener: 慰问: 问题是我有一个

我正在使用Symfony 4.4,首先我想检查我找到的条令版本: 在作曲家中:

doctrine/orm": "^2.4.5
在symfony.lock中:

"doctrine/orm": {
    "version": "v2.7.0"
},
我必须相信哪一个

所以主要的问题是,我试图实现一个条令实体侦听器,但它对我不起作用:

应用程序\实体\管理员: services.yaml: App\EventListener\Doctrine\AdminListener: 慰问:
问题是我有一个DataPersisterAPI平台组件,在尝试原则级别之前不允许删除,因此我认为事件侦听器不工作。 否则,事件侦听器将正常工作,并且有许多替代方案:


-我认为您根本不需要services.yaml条目。看起来你需要使用条令\ORM\Event\LifecycleEventArgs来代替。我得到了完全相同的问题。它们根本不起作用。我试过使用services.yaml条目,在实体上有注释,在假定的侦听器中有注释。没有什么未激发处理程序函数。这个功能完全被破坏了。
/**
 * @ORM\Entity(repositoryClass="App\Repository\AdminRepository")
 *
 * @ORM\EntityListeners({"AdminListener"})
 */
 class Admin implements UserInterface
admin_listener:
    class: App\EventListener\Doctrine\AdminListener
    tags:
        -
            name: doctrine.orm.entity_listener
            event: preRemove
            entity: App\Entity\Admin
            method: preRemove
            connection: 'default'
namespace App\EventListener\Doctrine;
use Doctrine\Persistence\Event\LifecycleEventArgs;

class AdminListener
{
    public function preRemove(Admin $admin, LifecycleEventArgs $event)
    {
        dump($admin);
        dd($event);
    }

}
>bin/console debug:event-dispatcher doctrine.orm.entity_listener
#output:                                                                        
 [WARNING] The event "doctrine.orm.entity_listener" does not have any     
           registered listeners.