i have problem listener.
public function onflush(onflusheventargs $args) { ini_set('max_execution_time', 30000); ini_set('memory_limit', '512m'); $em = $args->getentitymanager(); $uow = $em->getunitofwork(); foreach ($uow->getscheduledentityinsertions() $entity) { if($entity->gettranslatable() == 1){ $translation = $this->translate($entity); $repository = $em->getrepository('byjm\adminbundle\entity\translation\chambretranslation'); $repository ->translate($entity, 'nom', 'fr', $translation['fr']) ->translate($entity, 'nom', 'en', $translation['en']) ->translate($entity, 'nom', 'es', $translation['es']) ->translate($entity, 'nom', 'it', $translation['it']) ->translate($entity, 'nom', 'nl', $translation['nl']) ->translate($entity, 'nom', 'pt', $translation['pt']) ; $md = $em->getclassmetadata('byjm\adminbundle\entity\chambre'); $uow->recomputesingleentitychangeset($md, $entity); } } foreach ($uow->getscheduledentityupdates() $entity) { if($entity->gettranslatable() == 1){ $translation = $this->translate($entity); $repository = $em->getrepository('byjm\adminbundle\entity\translation\chambretranslation'); $repository ->translate($entity, 'nom', 'fr', $translation['fr']) ->translate($entity, 'nom', 'en', $translation['en']) ->translate($entity, 'nom', 'es', $translation['es']) ->translate($entity, 'nom', 'it', $translation['it']) ->translate($entity, 'nom', 'nl', $translation['nl']) ->translate($entity, 'nom', 'pt', $translation['pt']) ; $em->persist($entity); $md = $em->getclassmetadata('byjm\adminbundle\entity\chambre'); $uow->recomputesingleentitychangeset($md, $entity); } } } and have error: exception occurred while executing 'insert chambre_translations (locale, object_class, field, foreign_key, content) values (?, ?, ?, ?, ?)':
sqlstate[hy093]: invalid parameter number: no parameters bound
if have solution me, awesome!!!
thanks in advance.
this not issue related gedmo.
as mentioned in this post, onflush called, changes calculated , need refresh them if change entity or create new entity.
so need add $em->persist($entity);
can try ? please
public function onflush(onflusheventargs $args) { $em = $args->getentitymanager(); $uow = $em->getunitofwork(); $entities = array_merge( $uow->getscheduledentityinsertions(), $uow->getscheduledentityupdates() ); foreach ($entities $entity) { if($entity->gettranslatable() == 1){ $translation = $this->translate($entity); $repository = $em->getrepository('byjm\adminbundle\entity\translation\chambretranslation'); $repository ->translate($entity, 'nom', 'fr', $translation['fr']) ->translate($entity, 'nom', 'en', $translation['en']) ->translate($entity, 'nom', 'es', $translation['es']) ->translate($entity, 'nom', 'it', $translation['it']) ->translate($entity, 'nom', 'nl', $translation['nl']) ->translate($entity, 'nom', 'pt', $translation['pt']); $em->persist($entity); $md = $em->getclassmetadata(get_class($entity)); $uow->recomputesingleentitychangeset($md, $entity); } } }
Comments
Post a Comment