Saya mencoba untuk mendapatkan kunci URL dari kategori yang diberikan dengan ID. Aku punya ini;
$categoryId = 3;
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$object_manager = $_objectManager->create('Magento\Catalog\Model\Category')->load($categoryId);
print_r($object_manager->getData());
Dan ini berfungsi (di print_r ada kunci URL yang saya butuhkan), tetapi kategori # 3 adalah kategori tingkat atas. Setiap kali saya mencoba subkategori apa pun (katakan ID 5) saya mendapatkan array kosong. Saya hanya kehilangan kata-kata, tidak bisa memahaminya.
Di Magento 1.x saya biasa melakukan ini: Mage::getModel('catalog/category')->load($catID)->getUrl()
dan itu berhasil.
TL; DR: Kode ini berfungsi, ubah ID menjadi ID kategori (benar) dan ubah getData()
menjadi getUrl()
untuk url kategori lengkap, atau getName()
untuk nama kategori.
sumber
Selalu mencoba menggunakan repositori. Anda perlu menyuntikkan cara berikut:
Untuk url kategori
sumber
Anda dapat mencoba kode di bawah ini.
Sebelum Anda menggunakan id kategori Anda telah mengkonfirmasi id kategori ada di admin atau itu akan mengembalikan array kosong.
Beri tahu saya jika Anda memiliki pertanyaan.
sumber
Saya menemukan bahwa ketika saya memerlukan url kategori dari domain yang berbeda (per tampilan toko), saya harus membuat objek Url baru per tampilan toko.
sumber
Ini berfungsi dengan baik di blok kustom saya (menggunakan repositori kategori dan DI):
Akhirnya, dalam file templat saya hanya menggunakan:
sumber
@andrea Harap perbarui metode getCategory. Entah itu bekerja dengan baik.
sumber