ฉีดอินสแตนซ์\Magento\Catalog\Model\Product\Attribute\Repository
ในคอนสตรัคเตอร์ของคุณ (ในบล็อกคลาสผู้ช่วยหรือที่ใดก็ได้):
/**
* @var \Magento\Catalog\Model\Product\Attribute\Repository $_productAttributeRepository
*/
protected $_productAttributeRepository;
/**
* ...
* @param \Magento\Catalog\Model\Product\Attribute\Repository $productAttributeRepository
* ...
*/
public function __construct(
...
\Magento\Catalog\Model\Product\Attribute\Repository $productAttributeRepository,
...
) {
...
$this->_productAttributeRepository = $productAttributeRepository;
...
}
จากนั้นสร้างวิธีการในชั้นเรียนของคุณเพื่อรับแอตทริบิวต์ด้วยรหัส:
/**
* Get single product attribute data
*
* @return Magento\Catalog\Api\Data\ProductAttributeInterface
*/
public function getProductAttributeByCode($code)
{
$attribute = $this->_productAttributeRepository->get($code);
return $attribute;
}
จากนั้นคุณสามารถเรียกวิธีนี้ได้เช่นในไฟล์. phtml
$attrTest = $block->getProductAttributeByCode('test');
จากนั้นคุณสามารถโทรไปที่วัตถุคุณลักษณะเช่น
- รับตัวเลือก:
$attribute->getOptions()
- รับส่วนหน้าฉลากสำหรับแต่ละร้านค้า:
$attrTest->getFrontendLabels()
- ดีบักอาร์เรย์ข้อมูล:
echo '> ' . print_r($attrTest->debug(), true);
debug: Array ([attribute_id] => 274 [entity_type_id] => 4 [attribute_code] => product_manual_download_label [backend_type] => varchar [frontend_inabel] => ข้อความ [frontend_label] => ฉลากดาวน์โหลดคู่มือผลิตภัณฑ์ [is_required] => 0 is_user_defined] => 1 [default_value] => ดาวน์โหลดคู่มือผลิตภัณฑ์ [is_unique] => 0 [is_global] => 0 [is_visible] => 1 [is_searchable] => 0 [is_comilable] => 0 [is_comparable] => 0 [is_comilable] => 0 [is_unique] is_visible_on_front] => 0 [is_html_allowed_on_front] => 1 [is_used_for_price_rules] => 0 [is_filterable_in_search] => 0 [used_in_product_listing] => 0 [used_for_ort_by_info]> => 0 [used_for_ort_by_features_on_front_choice] => 0 [ใช้แล้ว0 [is_wysiwyg_enabled] => 0 [is_used_for_promo_rules] => 0 [is_required_in_admin_store] => 0 [is_used_in_grid] => 1 [is_visible_in_grid] 1> is_visible_in_grid = 1