Как мы можем получить имя набора атрибутов для продукта. Я хочу использовать его на странице с описанием товара и списком товаров .
Как мы можем получить имя набора атрибутов для продукта. Я хочу использовать его на странице с описанием товара и списком товаров .
Ответы:
Мы можем использовать, \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)
.