magento 2-製品リストおよび製品詳細ページで属性セット名を取得する方法


回答:


15

\Magento\Eav\Api\AttributeSetRepositoryInterface属性セット名を取得するために使用できます。

詳細ページ

\Magento\Catalog\Block\Product\Viewブロックをオーバーライドする必要があります。このクラスをコンストラクタに注入します

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

これで、製品の詳細ページを呼び出すことができます。 $block->getAttributeSetName();

リストページ

\Magento\Catalog\Block\Product\ListProductブロックをオーバーライドする必要があります

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

電話できます$block->getAttributeSetName($_product)


$属性セットと$製品は、私はmagento2に非常に新しいですし、私は私が書く必要が正確に理解することはできませんよ、未定義の変数です
アビシェークダンラージShahdeo

私の更新された答えを見ることができます。あなたにとって十分ですか?
Khoa TruongDinh 2016

私は、製品のリストブロックでそれを実装しようとしているが、それは正確なとして機能していない、いくつかの変更を加える
アビシェークダンラージShahdeo

DOMを

私の回答をフォローするときに、現在の問題で回答を更新できます。
Khoa TruongDinh 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.