removeCategoryFromProduct() публичный Метод

Removes a Category from a Product.
public removeCategoryFromProduct ( Sonata\Component\Product\ProductInterface $product, Sonata\ClassificationBundle\Model\CategoryInterface $category )
$product Sonata\Component\Product\ProductInterface
$category Sonata\ClassificationBundle\Model\CategoryInterface
Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function synchronizeVariationsCategories(ProductInterface $product, ArrayCollection $variations = null)
 {
     if (in_array('productCategories', $this->getVariationFields())) {
         return;
     }
     if (!$variations) {
         $variations = $product->getVariations();
     }
     $productCategories = $product->getProductCategories();
     /** @var ProductInterface $variation */
     foreach ($variations as $variation) {
         // browsing variation categories and remove excessing categories
         foreach ($variation->getCategories() as $variationCategory) {
             if ($variationCategory && !$productCategories->contains($variationCategory)) {
                 $this->productCategoryManager->removeCategoryFromProduct($variation, $variationCategory);
             }
         }
         // browsing Product categories and add missing categories
         foreach ($productCategories as $productCategory) {
             $category = $productCategory->getCategory();
             if ($category && !$variation->getCategories()->contains($category)) {
                 $this->productCategoryManager->addCategoryToProduct($variation, $category, $productCategory->getMain());
             }
         }
     }
 }