/** * 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); } }
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); } }
/** * @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); } }