Ejemplo n.º 1
0
 /**
  * Remove empty values after persisting, to avoid null 'Value' values in
  * the database.
  *
  * @param LifeCycleEventArgs $args
  *
  * @return void
  */
 public function postPersist(LifeCycleEventArgs $args)
 {
     $entity = $args->getEntity();
     $entityManager = $args->getEntityManager();
     if ($entity instanceof ValueInterface && $entity->isEmpty()) {
         $entityManager->remove($entity);
     }
 }
Ejemplo n.º 2
0
 private function setMaxRootSequence($item, LifeCycleEventArgs $event)
 {
     $em = $event->getEntityManager();
     $qb = $em->createQueryBuilder();
     $maxSequence = $qb->select('MAX(i.rootSequence)')->from(get_class($item), 'i')->getQuery()->getOneOrNullResult();
     $sequenceNext = (int) $maxSequence[1] + 1;
     if (is_null($item->getParent())) {
         $item->setRootSequence($sequenceNext);
     }
 }
Ejemplo n.º 3
0
 /**
  * @param LifecycleEventArgs $args
  */
 public function prePersist(LifeCycleEventArgs $args)
 {
     /** @var UrlInterface $object */
     $object = $args->getEntity();
     if ($object instanceof UrlInterface) {
         $urlUtility = new UrlUtility();
         $processedUrl = $urlUtility->process($object->getMetaUrl());
         $found = $args->getEntityManager()->getRepository(get_class($object))->findOneBy(['metaUrl' => $processedUrl]);
         if ($found) {
             throw new \LogicException('Given URL already exists');
         }
         $object->setMetaUrl($processedUrl);
     }
 }