コード例 #1
0
 /**
  * Retrieve codes of indexable attributes from given attribute set
  *
  * @param \Magento\Eav\Model\Entity\Attribute\Set $set
  * @return array
  */
 public function filter(\Magento\Eav\Model\Entity\Attribute\Set $set)
 {
     $codes = [];
     $catalogResource = $this->_attributeFactory->create();
     foreach ($set->getGroups() as $group) {
         /** @var $group \Magento\Eav\Model\Entity\Attribute\Group */
         foreach ($group->getAttributes() as $attribute) {
             /** @var $attribute \Magento\Eav\Model\Entity\Attribute */
             $catalogResource->load($attribute->getId());
             if ($catalogResource->isIndexable()) {
                 // Attribute requires to be cloned for new dataset to maintain attribute set changes
                 $attributeClone = clone $attribute;
                 $attributeClone->load($attribute->getAttributeId());
                 $codes[] = $attributeClone->getAttributeCode();
                 unset($attributeClone);
             }
         }
     }
     return $codes;
 }