magento 2 - Como obter o nome do conjunto de atributos na página de listagem e detalhes do produto


Respostas:


15

Podemos usar \Magento\Eav\Api\AttributeSetRepositoryInterfacepara obter o nome do conjunto de atributos.

Página de detalhes

Precisamos substituir o \Magento\Catalog\Block\Product\Viewbloco. Injete esta classe no construtor

/** @var \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet **/
protected $attributeSet;

public function __construct(
    ......
    \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet
    ......
) {
   ......
   $this->attributeSet = $attributeSet;
}


//Build method to get attribute set
public function getAttributeSetName() {

    $product = $this->getProduct();
    $attributeSetRepository = $this->attributeSet->get($product->getAttributeSetId());
    return $attributeSetRepository->getAttributeSetName();
}

Agora, podemos chamar a página de detalhes do produto: $block->getAttributeSetName();

Página de listagem

Precisamos substituir o \Magento\Catalog\Block\Product\ListProductbloco

/** @var \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet **/
protected $attributeSet;

public function __construct(
    ......
    \Magento\Eav\Api\AttributeSetRepositoryInterface $attributeSet
    ......
) {
   ......
   $this->attributeSet = $attributeSet;
}

public function getAttributeSetName($product) {

    $attributeSetRepository = $this->attributeSet->get($product->getAttributeSetId());
    return $attributeSetRepository->getAttributeSetName();
}

Nós podemos ligar $block->getAttributeSetName($_product).


$ attributeSet e US $ produto são variáveis indefinidas, eu sou muito novo para magento2 e eu não sou capaz de entender o que exatamente eu preciso escrever
Abhishek Dhanraj Shahdeo

Você pode ver minha resposta atualizada. Suficiente para ti?
precisa saber é o seguinte

Estou tentando implementá-lo em bloco lista de produtos, mas ele não está funcionando tão exata, fazendo algumas modificações
Abhishek Dhanraj Shahdeo

Estou ficando objeto de erro dom deve ser criado
Abhishek Dhanraj Shahdeo

Você pode atualizar sua resposta com o problema atual ao seguir minha resposta.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.