首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >symfony 5,Doctrine生命周期侦听器未运行

symfony 5,Doctrine生命周期侦听器未运行
EN

Stack Overflow用户
提问于 2020-12-22 13:07:58
回答 1查看 902关注 0票数 0

我尝试一个创建,但他不执行转储。我创建了一个实体,一个侦听器,并更新了service.yml

太疯狂了;-)

我有:在services.yaml

代码语言:javascript
复制
  App\EventListener\TestOrmListener:
    tags:
      - { name: doctrineormtester,event: postPersist, entity: 'App\Entity\Galery'}

在src/EventListener/TestOrmListener.php中

代码语言:javascript
复制
<?php
namespace App\EventListener;

use App\Entity\Galery;
use Doctrine\Persistence\Event\LifecycleEventArgs;

class TestOrmListener
{
    // the listener methods receive an argument which gives you access to
    // both the entity object of the event and the entity manager itself
    public function postPersist(LifecycleEventArgs $args): void
    {
        $entity = $args->getObject();

        // if this listener only applies to certain entity types,
        // add some code to check the entity type as early as possible
        if (!$entity instanceof Galery) {
            return;
        }

        $entityManager = $args->getObjectManager();
        dump($entityManager);
        die('mick');
        // ... do something with the Product entity
    }
}

实体中的一个

代码语言:javascript
复制
    <?php

namespace App\Entity;

use App\Repository\GaleryRepository;
use Doctrine\ORM\Mapping as ORM;
use App\Entity\Traits\Timestampable;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass=GaleryRepository::class)
 * @ORM\HasLifecycleCallbacks
 */
class Galery
{
    use Timestampable;
    /**
     * @ORM\Id
     * @Assert\NotBlank
     * @ORM\Column(type="string", length=255)
     */
    private $nom;

你有什么主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-22 13:56:35

您的标签部分有问题。根据官方的文档

下一步是在Symfony应用程序中启用Doctrine侦听器,方法是为它创建一个新服务并使用doctrine.event_listener标记对其进行标记。

因此,您的服务定义应该如下所示:

代码语言:javascript
复制
App\EventListener\TestOrmListener:
        tags:
            - { name: 'doctrine.event_listener', event: 'postPersist', entity: 'App\Entity\Galery' }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65409308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档