Php 未调用实体回调

Php 未调用实体回调,php,database,events,symfony,doctrine-orm,Php,Database,Events,Symfony,Doctrine Orm,我在实体类中添加了@ORM\Entity和@ORM\haslifecycellbacks注释,之后在实体类中添加了带有正确注释的回调方法(如下所示): 但是,PreUpdateHandler不会被调用进行任何数据库操作(插入、更新或删除)。你知道我错过了什么吗 顺便问一下:我在哪里可以看到所有可用事件注释的列表(如@ORM\PreUpdate和@ORM\PrePersist) 重要 我的实体类继承自位于另一个目录(和命名空间)中的基本实体类。我也在基类的元数据中添加了haslifecycellb

我在实体类中添加了
@ORM\Entity
@ORM\haslifecycellbacks
注释,之后在实体类中添加了带有正确注释的回调方法(如下所示):

但是,
PreUpdateHandler
不会被调用进行任何数据库操作(插入、更新或删除)。你知道我错过了什么吗

顺便问一下:我在哪里可以看到所有可用事件注释的列表(如@ORM\PreUpdate和@ORM\PrePersist)

重要
我的实体类继承自位于另一个目录(和命名空间)中的基本实体类。我也在基类的元数据中添加了
haslifecycellbacks
注释。这对触发回调有影响吗?

试试这个并检查结果

$em->persist($object);
$object->PreUpdateHandler()
$em->flush();

不会调用生命周期回调方法PreUpdateHandler,因为方法的可见性受到保护,因此ORM无法访问该方法。将可见性更改为public,然后重试。

替换注释回调

/**
 *
 * @ORM\PreUpdate
 * @ORM\PrePersist
 */


所以问题是,我使用的是yml文件以及实体类,而且注释似乎与yml文件不并行。我删除了注释并在yml文件及其工作中添加了回调。

您怎么知道它没有被调用?控制台上没有任何内容。。。没有变量转储,没有回声。更改!但是仍然不走运:(用骰子或方法内部的一些日志进行检查。它是这样调用的,但不是自动调用的。请参阅上面我的回答。顺便说一句,我尝试了你的建议,但仍然不起作用。
/**
 *
 * @ORM\PreUpdate
 * @ORM\PrePersist
 */
/**
 *
 * @ORM\PreUpdate()
 * @ORM\PrePersist()
 */