/** * {@inheritdoc} */ public function onPostSubmit(FormEvent $event) { /** @var Product|null $product */ $product = $event->getData(); if (!$product) { return; } $form = $event->getForm(); if (!$form->isValid()) { return; } /** @var Category $category */ $category = $form->get('category')->getData(); if (null !== $product->getId()) { /** @var Category $productCategory */ $productCategory = $this->categoryRepository->findOneByProduct($product); if ($productCategory instanceof Category && $category !== $productCategory) { $productCategory->removeProduct($product); } } if ($category instanceof Category) { $category->addProduct($product); } }