src/EventListener/IndexOrderItem.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\OrderItem;
  4. use App\Model\Category;
  5. use FOS\ElasticaBundle\Event\PreTransformEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class IndexOrderItem implements EventSubscriberInterface
  8. {
  9.     public function prepareObject(PreTransformEvent $event)
  10.     {
  11.         $orderItem $event->getObject();
  12.         if (! $orderItem instanceof OrderItem) {
  13.             return;
  14.         }
  15.         $prod $orderItem->getProduct();
  16.         if ($prod) {
  17.             $cat $prod->getCategory();
  18.             if ($cat) {
  19.                 $topCat Category::topCategory($cat);
  20.                 $orderItem->setTopCategoryId($topCat->getId());
  21.             }
  22.         }
  23.     }
  24.     public static function getSubscribedEvents(): array
  25.     {
  26.         return [
  27.             PreTransformEvent::class => 'prepareObject'
  28.         ];
  29.     }
  30. }