src/Service/SlugUrlCreator.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\Profile;
  4. use Doctrine\Persistence\Event\LifecycleEventArgs;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Doctrine\ORM\Events;
  7. use Symfony\Component\String\Slugger\AsciiSlugger;
  8. class SlugUrlCreator implements EventSubscriberInterface
  9. {
  10.     public function postPersist(LifecycleEventArgs $args)
  11.     {
  12.         $entity $args->getObject();
  13.         $entityManager $args->getObjectManager();
  14.         if($entity instanceof  Profile){
  15.             $slugger = new AsciiSlugger();
  16.             $slug strtolower($slugger->slug($entity->getId().'-'.$entity->getName()));
  17.             $entity->setUrl($slug);
  18.             $entityManager->flush();
  19.         }
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             Events::postPersist
  25.         ];
  26.     }
  27. }