magento 2 - Cách nhận tên tập thuộc tính trong danh sách sản phẩm và trang chi tiết sản phẩm


Câu trả lời:


14

Chúng ta có thể sử dụng \Magento\Eav\Api\AttributeSetRepositoryInterfaceđể có được tên tập thuộc tính.

Trang chi tiết

Chúng ta cần ghi đè lên \Magento\Catalog\Block\Product\Viewkhố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();

Trang danh sách

Chúng ta cần ghi đè \Magento\Catalog\Block\Product\ListProductkhố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).


$ property set và $ sản phẩm là các biến không xác định, tôi rất mới với magento2 và tôi không thể hiểu chính xác những gì tôi cần viết
Abhishek Dhanraj Shahdeo

Bạn có thể thấy câu trả lời cập nhật của tôi. Đủ cho bạn?
Khoa TruongDinh

Tôi đang cố gắng triển khai nó trong khối danh sách sản phẩm, nhưng nó không hoạt động chính xác, thực hiện một số sửa đổi
Abhishek Dhanraj Shahdeo

Tôi đang nhận được lỗi dom dom nên được tạo
Abhishek Dhanraj Shahdeo

Bạn có thể cập nhật câu trả lời của bạn với vấn đề hiện tại khi làm theo câu trả lời của tôi.
Khoa TruongDinh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.