製品の属性セット名を取得するにはどうすればよいですか。商品詳細や一覧ページで利用したいです。
製品の属性セット名を取得するにはどうすればよいですか。商品詳細や一覧ページで利用したいです。
回答:
\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)
。