src/App/Form/Type/EventListener/SetDefaultProductDataListener.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Form\Type\EventListener;
  3. use App\Entity\Core\Product;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\Form\FormEvent;
  6. use Symfony\Component\Form\FormEvents;
  7. class SetDefaultProductDataListener implements EventSubscriberInterface
  8. {
  9.     public static function getSubscribedEvents()
  10.     {
  11.         return [
  12.             FormEvents::PRE_SUBMIT => 'onPreSubmit',
  13.         ];
  14.     }
  15.     public function onPreSubmit(FormEvent $event)
  16.     {
  17.         $product $event->getData();
  18.         if (!$product) {
  19.             return;
  20.         }
  21.         
  22.         $this->setDefaultData($event);
  23.     }
  24.     private function setDefaultData(FormEvent $event): void
  25.     {
  26.         $product $event->getData();
  27.         $product['variantSelectionMethod'] = Product::DEFAULT_VARIANT_SELECTION;
  28.         
  29.         $event->setData($product);
  30.     }
  31. }