26 private $attributeRepository;
31 private $metadataPool;
36 private $searchCriteriaBuilder;
41 private $attributesValues;
46 private $resourceConnection;
57 AttributeRepository $attributeRepository,
64 $this->metadataPool = $metadataPool;
66 $this->filterBuilder = $filterBuilder;
84 if ($this->attributesValues ===
null) {
88 return isset($this->attributesValues[
$storeId])
103 if ($this->attributesValues ===
null) {
121 $metadata = $this->metadataPool->getMetadata(
$entityType);
123 $attributeTables = [];
124 if ($metadata->getEavEntityType()) {
136 $select = $metadata->getEntityConnection()->select()
137 ->from([
't' => $attributeTable], [
'value' =>
't.value',
'store_id' =>
't.store_id'])
139 [
'a' => $this->resourceConnection->getTableName(
'eav_attribute')],
140 'a.attribute_id = t.attribute_id',
141 [
'attribute_code' =>
'a.attribute_code']
143 ->where($metadata->getLinkField() .
' = ?',
$entity->getData($metadata->getLinkField()))
145 ->where(
't.store_id IN (?)', $storeIds);
149 $unionSelect = new \Magento\Framework\DB\Sql\UnionExpression(
153 $attributes = $metadata->getEntityConnection()->fetchAll((
string)$unionSelect);
166 $metadata = $this->metadataPool->getMetadata(
$entityType);
167 $searchResult = $this->attributeRepository->getList(
168 $metadata->getEavEntityType(),
169 $this->searchCriteriaBuilder->addFilters(
172 ->setField(
'is_global')
173 ->setConditionType(
'in')
179 return $searchResult->getItems();
containsValue($entityType, $entity, $attributeCode, $storeId)
getDefaultValues($entityType, $entity)
__construct(AttributeRepository $attributeRepository, MetadataPool $metadataPool, SearchCriteriaBuilder $searchCriteriaBuilder, FilterBuilder $filterBuilder, ResourceConnection $resourceConnection)