【问题标题】:How to use Doctrine Entity Listener with Symfony 2.4?如何在 Symfony 2.4 中使用 Doctrine Entity Listener?
【发布时间】:2014-03-01 12:18:12
【问题描述】:

我想在 Symfony 2.4 中使用 Doctrine Entity Listener

我创建了一个类:

<?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 doctrine


【解决方案1】:

要在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 2015-08-24
    • 2019-05-20
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多