Bagaimana saya bisa mendapatkan nilai opsi atribut entitas eav?
Saya menemukan solusi hanya untuk magento 1.x tetapi M2 saya tidak tahu.
M1:
$attr = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter('specialty')->getData()[0];
$attributeModel = Mage::getModel('eav/entity_attribute')->load($attr['attribute_id']);
$src = $attributeModel->getSource()->getAllOptions();
Ada yang tahu, tunjukkan selangkah demi selangkah, terima kasih!
\Magento\Eav\Api\Attribute RepositoryInterface
. Apa pun yang tidak ditandai sebagai @api diperlakukan sebagai pribadi dan dapat dihapus dalam rilis minor.Anda dapat melakukannya cukup memanggil kode di bawah ini di dalam file Block Anda.
Panggil ke dalam file phtml Anda,
Terima kasih.
sumber
swatch
input, seperticolor
. ThegetOptions()
Metode sulit dikodekan untuk jenis masukan tertentu, seperti "dropdown", sehingga melompat pilihan input swatch. Hanya kepala jika ada orang lain berlari ke sana.Gunakan kode berikut untuk mendapatkan semua opsi atribut.
Silakan dapat Anda klik di sini untuk penjelasan lebih rinci. http://www.pearlbells.co.uk/code-snippets/get-magento-attribute-options-programmatically/
sumber
Saya menggunakan Layer Layanan Api yang
Magento\Eav\Api\AttributeRepositoryInterface
disarankan oleh @kandy dalam komentar pada jawaban @marius.Suntikkan anggota data layanan di konstruktor Anda sebagai berikut.
Dan Anda bisa mendapatkan atribut menggunakan ini.
Untuk mendapatkan array nilai opsi atribut, gunakan ini.
sumber
Suntikkan instance
\Magento\Catalog\Model\Product\Attribute\Repository
dalam konstruktor Anda (dalam blok, kelas pembantu atau di mana pun):Kemudian buat metode di kelas Anda untuk mendapatkan atribut dengan kode:
Anda kemudian dapat memanggil metode ini seperti itu, misalnya di dalam file .phtml
Kemudian Anda dapat membuat panggilan pada objek atribut, mis
$attribute->getOptions()
$attrTest->getFrontendLabels()
echo '> ' . print_r($attrTest->debug(), true);
sumber
sumber