gpt4 book ai didi

symfony - 如何在 Symfony 2.4 中使用 Doctrine 实体监听器?

转载 作者:行者123 更新时间:2023-12-05 00:26:30 24 4
gpt4 key购买 nike

我想用Doctrine Entity Listener使用 Symfony 2.4。

我创建了一个类:

<?php

namespace MyBundle\Listener\Entity;

use Doctrine\ORM\Event\LifecycleEventArgs;
use MyBundle\Entity\User;

class UserListener
{
public function postPersist(User $user, LifecycleEventArgs $event)
{
}
}

我添加了映射信息:
<?xml version="1.0" encoding="UTF-8" ?>
<doctrine-mapping>
<entity name="MyBundle\Entity\User">

...

<entity-listeners>
<entity-listener class="MyBundle\Listener\Entity\UserListener" />
</entity-listeners>

</entity>
</doctrine-mapping>

它工作正常。但是我如何将一些服务传递给这个类呢?我希望它与 Symfony 的服务容器集成并提供服务。

最佳答案

要在 symfony 中注册特定的实体监听器实例,请按照以下步骤操作:

1) 将 composer.json 中的 DoctrineBundle 更新到 1.3 版(因为它还不稳定):

{
"require": {
"doctrine/doctrine-bundle": "1.3.x-dev",
}
}

2)使用标签名称“doctrine.orm.entity_listener”注册您自己的服务:
my.listener:
class: MyBundle\Listener\Entity\UserListener
arguments: [ ... ]
tags:
- { name: doctrine.orm.entity_listener }

Symfony docs on Entity Listeners .

关于symfony - 如何在 Symfony 2.4 中使用 Doctrine 实体监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22114239/

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