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

9

Wie können wir den Attributsatznamen für ein Produkt abrufen ? Ich möchte es auf Produktdetails und Auflistungsseiten verwenden .

Abhishek Dhanraj Shahdeo
quelle

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).

Khoa TruongDinh
quelle
$ 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