-2

こんにちは私はこのコードに問題があります:

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}

ただし、データベースにログインを作成することはできません。助けてください。ありがとう

4

1 に答える 1

3

この場合、$ entityManager-> 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を使用できます

于 2012-10-05T13:51:29.520 に答える