你好,我有这个代码的问题:
ListenerCrud.php
<?php
namespace mio\mioBundle;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\EntityManager;
use mio\mioBundle\Entity\Log;
use Symfony\Component\HttpFoundation\Response;
class ListenerCrud{
public function preUpdate(PreUpdateEventArgs $eventArgs){
if ($eventArgs->getEntity() instanceof Usuario){
$entity = $eventArgs->getEntity();
$entityManager = $eventArgs->getEntityManager();
$log = new Log();
$entityManager->persist($log);
$entityManager->flush();
}
}
}
?>
config.yml:
listenercrud:
class: mio\mioBundle\ListenerCrud
tags:
- { name: doctrine.event_listener, event: preUpdate}
但没有在数据库中创建日志。请帮助我。谢谢
答案 0 :(得分:3)
在这种情况下,$ entityManager-&gt; persist()不起作用,因为他无法在preUpdate事件中调用。 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate
也许您可以使用postUpdate事件 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#postupdate-postremove-postpersist