src/Form/EventListener/Franchise/ExternalLink/ValidateExternalLinkFieldsSubscriber.php line 20

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Form\EventListener\Franchise\ExternalLink;
  4. use App\Entity\Franchise\ExternalLink;
  5. use App\Entity\Franchise\ExternalLinkInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\Form\FormEvent;
  8. use Symfony\Component\Form\FormEvents;
  9. class ValidateExternalLinkFieldsSubscriber implements EventSubscriberInterface
  10. {
  11.     public static function getSubscribedEvents(): array
  12.     {
  13.         return [FormEvents::POST_SUBMIT => 'postSubmit'];
  14.     }
  15.     public function postSubmit(FormEvent $event): void
  16.     {
  17.         /** @var ExternalLink $externalLink */
  18.         $externalLink $event->getData();
  19.         // dump($externalLink->getType(), $externalLink);
  20.         switch ($externalLink->getType()) {
  21.             case ExternalLinkInterface::EXTERNAL_LINK_TYPE_FILE:
  22.                 $externalLink->setLink(null);
  23.                 $externalLink->setContent(null);
  24.                 break;
  25.             case ExternalLinkInterface::EXTERNAL_LINK_TYPE_LINK:
  26.                 $externalLink->setContent(null);
  27.                 $externalLink->setFile(null);
  28.                 $externalLink->setExternalFile(null);
  29.                 break;
  30.             case ExternalLinkInterface::EXTERNAL_LINK_TYPE_CONTENT:
  31.                 $externalLink->setLink(null);
  32.                 $externalLink->setFile(null);
  33.                 $externalLink->setExternalFile(null);
  34.                 break;
  35.         }
  36.     }
  37. }