src/EventSubscriber/EasyAdminSubscriber.php line 21

  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Order;
  4. use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityPersistedEvent;
  5. use EasyCorp\Bundle\EasyAdminBundle\Event\BeforeEntityUpdatedEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class EasyAdminSubscriber implements EventSubscriberInterface
  8. {
  9.     public static function getSubscribedEvents()
  10.     {
  11.         return [
  12.             BeforeEntityUpdatedEvent::class => ['checkRowOrder'],
  13.         ];
  14.     }
  15.     public function checkRowOrder(BeforeEntityUpdatedEvent $event)
  16.     {
  17.         $entity $event->getEntityInstance();
  18.         if (!($entity instanceof Order)) {
  19.             return;
  20.         }
  21.         $rowOrders = [];
  22.         /** @var Order $entity */
  23.         foreach ($entity->getRowOrders() as $rowOrder) {
  24.             $entity->removeRowOrder($rowOrder);
  25.             if ($rowOrder->getOrder() === null) {
  26.                 $rowOrder->setOrder($entity);
  27.             }
  28.             $rowOrders[] = $rowOrder;
  29.         }
  30.         foreach ($rowOrders as $rowOrder) {
  31.             $entity->addRowOrder($rowOrder);
  32.         }
  33.     }
  34. }