Làm thế nào chúng ta có thể lấy tên bộ thuộc tính cho một sản phẩm. Tôi muốn sử dụng nó trên chi tiết sản phẩm và trang danh sách .
Làm thế nào chúng ta có thể lấy tên bộ thuộc tính cho một sản phẩm. Tôi muốn sử dụng nó trên chi tiết sản phẩm và trang danh sách .
Câu trả lời:
Chúng ta có thể sử dụng \Magento\Eav\Api\AttributeSetRepositoryInterface
để có được tên tập thuộc tính.
Chúng ta cần ghi đè lên \Magento\Catalog\Block\Product\View
khối. Tiêm lớp này vào hàm tạo
/** @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();
}
Bây giờ, chúng ta có thể gọi trong trang chi tiết sản phẩm: $block->getAttributeSetName();
Chúng ta cần ghi đè \Magento\Catalog\Block\Product\ListProduct
khối
/** @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();
}
Chúng tôi có thể gọi $block->getAttributeSetName($_product)
.