Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AttributeLoader.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Eav\Api\AttributeRepositoryInterface as AttributeRepository;
11 
16 {
18  const ATTRIBUTE_SET_ID = 'attribute_set_id';
19 
23  private $attributeRepository;
24 
28  private $metadataPool;
29 
33  private $searchCriteriaBuilder;
34 
42  public function __construct(
43  AttributeRepository $attributeRepository,
44  MetadataPool $metadataPool,
45  SearchCriteriaBuilder $searchCriteriaBuilder
46  ) {
47  $this->attributeRepository = $attributeRepository;
48  $this->metadataPool = $metadataPool;
49  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
50  }
51 
59  public function getAttributes($entityType, $attributeSetId = null)
60  {
61  $metadata = $this->metadataPool->getMetadata($entityType);
62 
63  if ($attributeSetId === null) {
64  $criteria = $this->searchCriteriaBuilder->addFilter(self::ATTRIBUTE_SET_ID, null, 'neq')->create();
65  } else {
66  $criteria = $this->searchCriteriaBuilder->addFilter(self::ATTRIBUTE_SET_ID, $attributeSetId)->create();
67  }
68 
69  $searchResult = $this->attributeRepository->getList(
70  $metadata->getEavEntityType(),
71  $criteria
72  );
73  $attributes = $searchResult->getItems();
74 
75  return $attributes;
76  }
77 }
getAttributes($entityType, $attributeSetId=null)
$attributes
Definition: matrix.phtml:13
__construct(AttributeRepository $attributeRepository, MetadataPool $metadataPool, SearchCriteriaBuilder $searchCriteriaBuilder)
$searchCriteriaBuilder