学说/符号:如何将EntityManager包括在EntityListener中



我有一个实体 BaseInformation

/**
 * @ORMEntity
 * @ORMEntityListeners({"AppBundleEntityListenerBaseInformationListener"})
 * @ORMTable(name="BaseInformation")
 */
class BaseInformation
{ ...

因此,我有一个EntityListener

/**
 * Class BaseInformationListener
 * @package AppBundleEventListener
 */
class BaseInformationListener
{
    /**
     * @ORMPreUpdate
     *
     * @param BaseInformation $baseInformation
     * @param PreUpdateEventArgs $event
     */
    public function preUpdateHandler(BaseInformation $baseInformation, PreUpdateEventArgs $event)
    {
        dump($baseInformation);
        dump($event->getEntityChangeSet());
    }
}

我需要将ChangeSet保存到数据库中。但是我无法访问EntityManager。我可以从中提供服务,但是听众会自动对实体的注释进行调用。那么,如何可以访问EntityManager来保存我的ChangeSet

您可以定义侦听器并将其标记为EntityListener,因此您可以使用通常需要的依赖项:

services:
    base_information_listener:
        class: AppBundleEntityListenerBaseInformationListener
        arguments: ['@doctrine.orm.entity_manager']
        tags:
            - { name: doctrine.orm.entity_listener }

学说2.5您还需要在相关实体中使用注释(如文档中所述)。

希望此帮助

相关内容

  • 没有找到相关文章

最新更新