Como posso obter os valores das opções de atributo da entidade eav?
Encontrei solução apenas para magento 1.x mas M2 não sei.
M1:
$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0];
$attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']);
$src = $attributeModel->getSource()->getAllOptions();
Alguém sabe, mostre-me passo a passo, pls! Obrigado!
\Magento\Eav\Api\Attribute RepositoryInterface
. Qualquer coisa não marcada como @api é tratada como privada e pode ser removida em versões menores.Você pode fazer isso simplesmente chamando o código abaixo dentro do seu arquivo Block.
Ligue dentro do seu arquivo phtml,
Obrigado.
fonte
swatch
entradas, comocolor
. OgetOptions()
método é codificado para certos tipos de entrada, como "menus suspensos", de modo que ignora as opções de entrada de amostra. Apenas um alerta, se mais alguém se deparar com isso.Use o código a seguir para obter todas as opções de atributo.
Você pode clicar aqui para obter uma explicação mais detalhada. http://www.pearlbells.co.uk/code-snippets/get-magento-attribute-options-programmatically/
fonte
Eu uso a Api Service Layer
Magento\Eav\Api\AttributeRepositoryInterface
sugerida por @kandy nos comentários na resposta @marius.Injete o membro de dados do serviço em seu construtor da seguinte maneira.
E você pode obter o atributo usando isso.
Para obter a matriz de valores das opções de atributo, use isso.
fonte
Injete uma instância de
\Magento\Catalog\Model\Product\Attribute\Repository
no seu construtor (em um bloco, classe auxiliar ou em qualquer outro lugar):Em seguida, crie um método em sua classe para obter o atributo por código:
Você pode chamar esse método assim, por exemplo, dentro de um arquivo .phtml
Então você pode fazer chamadas no objeto de atributo, por exemplo
$attribute->getOptions()
$attrTest->getFrontendLabels()
echo '> ' . print_r($attrTest->debug(), true);
fonte
fonte