Как удалить параметр атрибута цвета с помощью метки в Magento 2?


Можем ли мы удалить параметры атрибутов продукта с помощью метки?

Например, скажите атрибут: цвет имеет такие параметры, как зеленый, красный, желтый как удалить красный из этого? Я использовал приведенный ниже код.

        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();

        $eavConfig = $objectManager->get('Magento\Eav\Model\Config');

        $attribute = $eavConfig->getAttribute('catalog_product', 'color);

        $id = $attribute->getAttributeId();

        $options = $attribute->getSource()->getAllOptions();
        foreach ($options as $option) {             
            $options['delete'][$option['value']] = true; 
            $options['value'][$option['value']] = true;
        }

        $eavSetup = $this->_objectManager->get('Magento\Eav\Setup\EavSetup');
        $eavSetup->addAttributeOption($options);

Он удаляет все параметры. Мне нужно удалить определенную опцию.

Author: Sanne, 2018-07-09

2 answers

Попробуйте следующий код:

<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

$eavAttribute = $objectManager->create('Magento\Eav\Model\Config');
$attribute = $eavAttribute->getAttribute('catalog_product', 'color');

$options = $attribute->getSource()->getAllOptions();

foreach ($options as $option) {
    if($option['label'] == 'Red'){
        $options['delete'][$option['value']] = true; 
        $options['value'][$option['value']] = true;
    }
}

$setupObject = $objectManager->create('Magento\Eav\Setup\EavSetup');
$setupObject->addAttributeOption($options);
?>
 5
Author: Sukumar Gorai, 2018-07-09 11:06:13
   "OptionValues": [ 
         { 
            "OptionId": "22",  
            "OptionName": "Test" 
         },
         { 
            "OptionId": "21",
            "OptionName" : "Test 2"
         } 

      <?php
     $objectManager = \Magento\Framework\App\ObjectManager::getInstance();

     $eavAttribute = $objectManager->create('Magento\Eav\Model\Config');
     $attribute = $eavAttribute->getAttribute('catalog_product', 'color');

       $options = $attribute->getSource()->getAllOptions();
       foreach($OptionValues as $optValue){
                    $optionIdVal = $optValue['OptionName'];
                    foreach ($options as $option) {
                        if($option['label'] == $optionIdVal){
                            $options['delete'][$option['value']] = true; 
                            $options['value'][$option['value']] = true;
                        }
                    }
                }


     $setupObject = $objectManager->create('Magento\Eav\Setup\EavSetup');
     $setupObject->addAttributeOption($options);
  ?>
 0
Author: jafar pinjar, 2019-01-23 04:44:19