Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IndexableAttributeFilter.php
Go to the documentation of this file.
1 <?php
8 
10 {
14  protected $_attributeFactory;
15 
19  public function __construct(\Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory $attributeFactory)
20  {
21  $this->_attributeFactory = $attributeFactory;
22  }
23 
30  public function filter(\Magento\Eav\Model\Entity\Attribute\Set $set)
31  {
32  $codes = [];
33  $catalogResource = $this->_attributeFactory->create();
34  $groups = $set->getGroups();
35  if (is_array($groups)) {
36  foreach ($groups as $group) {
38  foreach ($group->getAttributes() as $attribute) {
40  $catalogResource->load($attribute->getId());
41  if ($catalogResource->isIndexable()) {
42  // Attribute requires to be cloned for new dataset to maintain attribute set changes
43  $attributeClone = clone $attribute;
44  $attributeClone->load($attribute->getAttributeId());
45  $codes[] = $attributeClone->getAttributeCode();
46  unset($attributeClone);
47  }
48  }
49  }
50  }
51  return $codes;
52  }
53 }
__construct(\Magento\Catalog\Model\ResourceModel\Eav\AttributeFactory $attributeFactory)
$group
Definition: sections.phtml:16