magento 2 - So erhalten Sie den Attributsatznamen in der Produktliste und auf der Produktdetailseite


Antworten:


14

Wir können verwenden \Magento\Eav\Api\AttributeSetRepositoryInterface, um den Attributsatznamen zu erhalten.

Detailseite

Wir müssen den \Magento\Catalog\Block\Product\ViewBlock überschreiben . Injizieren Sie diese Klasse in den Konstruktor

/** @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();
}

Jetzt können wir die Produktdetailseite aufrufen: $block->getAttributeSetName();

Listingseite

Wir müssen den \Magento\Catalog\Block\Product\ListProductBlock überschreiben

/** @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();
}

Wir können anrufen $block->getAttributeSetName($_product).


$ attributeSet und $ product sind undefinierte Variablen, ich bin sehr neu in magento2 und ich kann nicht verstehen, was genau ich schreiben muss
— Abhishek Dhanraj Shahdeo

Sie können meine aktualisierte Antwort sehen. Genug für dich?
— Khoa TruongDinh

Ich versuche es im Produktlistenblock zu implementieren, aber es funktioniert nicht so genau und nimmt einige Änderungen vor
— Abhishek Dhanraj Shahdeo

Ich
— erhalte

Sie können Ihre Antwort mit dem aktuellen Problem aktualisieren, wenn Sie meiner Antwort folgen.
— Khoa TruongDinh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.