Como obter um valor de opção com base no ID da opção no Magento, ou obter um ID de opção com base no código da opção?
Exemplo: como obter o ID da opção 10 do atributo de cor no rótulo "Vermelho" e obter o valor "Vermelho" se o ID da opção for 10?
magento2
product-attribute
Arnaud
fonte
fonte
A melhor prática no magento é fazê-lo via xml.
Para obter um atributo padrão como
brand
você faz algo parecido com isto,catalog_product_view.xml
por exemplo:Isso obterá o valor de um atributo de entrada ou área de texto. Se você tiver uma lista suspensa, use o tipo de texto; adicione esta linha na lista de argumentos:
Não há necessidade de criar arquivos ou escrever qualquer código php para obter um atributo. Dessa forma, você terá consistência e usará o mesmo arquivo attribute.phtml para todos os atributos. Se algo mudar, você precisará alterá-lo apenas em um local.
fonte
Trabalhou para mim
fonte
Usar método de fábrica
no arquivo phtml
fonte
eu recebo uma solução simples. isso mostrará apenas o valor do atributo com o código do atributo para um produto. Eu verifiquei na página de catálogo e detalhes.
o código é
<?php echo $_product->getAttributeText('size'); ?>
aqui size é o nome do atributo.
referência: vendor / magento / catalog-module / view / frontend / templates / product / view / attribute.phtml line: 35
fonte
$product->getResource()
tem uma nota do DocBlock sobre ser descontinuado pelo menos na v2.2.2 e, portanto, hesitei em codificá-lo. Criamos essa solução, inspirada nas que já estão nesta página:Para referência, este é o método em AbstractModel.php
fonte
getResource()
método neste modelo: github.com/magento/magento2/blob/2.3-develop/app/code/Magento/…getResource()
era um método que existia anteriormente. Na v2.2.2, como mencionei, ele já estava programado para ser descontinuado. No ramo de desenvolvimento 2.3, suspeito que tenha sido concluído. Assim, meu exemplo que não requer essa função.Para todo mundo vem aqui.
Se você não tiver nenhuma entidade do produto, poderá recuperar um valor de opção com estas etapas.
Injetar
\Magento\Eav\Api\AttributeRepositoryInterface
na sua turmaUse o repositório para obter a instância do atributo
Use
$attribute
para obter o ID da opção no valor da opçãofonte
você pode usar para obter o rótulo do atributo
você pode usar o gerenciador de objetos:
fonte
Por favor, tente este código
Etapa 1) Primeiro você precisa carregar os produtos
Etapa 2) Na página de listagem de produtos, haverá um loop foreach para listar produtos como este
Etapa 3) Seu código estará dentro desse loop. Coloque o código abaixo em um local onde você deseja exibir o rótulo do atributo.
Apenas substitua your_attribute_code pelo nome do seu atributo.
fonte