Упорствовать в флеш Symfony - PullRequest
       19

Упорствовать в флеш Symfony

0 голосов
/ 06 ноября 2018

Я пытаюсь остаться в слушателе события onFlush, но у меня есть эта ошибка:

Исключительная ситуация при выполнении журналов INSERT INTO (dateSauvegarde, montantProvision, montantPrecedant, commentaire, dateCreation, dateModification, idProfil, idSinistre) VALUES (?,?,?,?,?,?,?,?) ':

SQLSTATE [HY093]: недопустимый номер параметра: параметры не были связаны

Но ... эти поля хорошо заполнены ...

    public function onFlush(OnFlushEventArgs $args){
    $em = $args->getEntityManager();
    $uow = $em->getUnitOfWork();

    $session = new Session();
    $loggedContact = $session->get('loggedContact');


    foreach ($uow->getScheduledEntityUpdates() as $entity) {
        if ($entity instanceof ApcSinistres) {
            $changements = $uow->getEntityChangeSet($entity);
            foreach($changements as $colonne => $changement){

                if($colonne == "provisions"){
                    $logs = new ApcSauvegardeProvisionsHistorisation();
                    $logs->setDatesauvegarde(new DateTime());
                    $logs->setIdprofil($loggedContact);
                    $logs->setIdsinistre($entity);
                    $logs->setCommentaire("Recalcul des provisions suite au changement du statut du sinistre");
                    $logs->setMontantprovision($changement[1]);
                    $logs->setMontantprecedent($changement[0]);

                    $uow->persist($logs );
                }

            }
            return;
        }
    }

}

Я не знаю, почему у меня есть эта ошибка, у кого-то есть решение?

Привет

1 Ответ

0 голосов
/ 06 ноября 2018

Вам необходимо обновить набор изменений для вашего ApcSauvegardeProvisionsHistorisation объекта вручную, если вы хотите сохранить что-то в пределах onFlush. Причина в том, что наборы изменений уже были рассчитаны до вызова onFlush.

$logMetadata = $em->getClassMetadata(ApcSauvegardeProvisionsHistorisation::class);
// ...
$em->persist($logs);
$uow->computeChangeSet($logMetadata, $logs);
...