Yang ingin saya lakukan adalah mengambil semua kategori anak dari kategori induk tertentu. Saya berasumsi cara terbaik untuk melakukan ini adalah dengan menggunakan ID orang tua dan dari kategori anak yang dikembalikan, saya ingin mengambil kategori anak mereka juga.
9
$subcats = $subcategory->getChildrenCategories();
Jawaban:
Lihat contoh di bawah ini untuk mendapatkan daftar semua subkategori kategori induk spesifik menggunakan ID kategori induk menggunakan objectManager.
=====
Lihat contoh di bawah ini untuk mendaftar semua subkategori kategori induk tertentu menggunakan ID kategori induk menggunakan repositori.
Pertama-tama, tambahkan CategoryRepository dalam konstruk:
Sekarang Anda dapat menggunakan cara berikut:
sumber
Anda perlu menambahkan dependensi ke kelas Anda
\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory
.Seperti ini:
sekarang Anda hanya perlu memanggil metode
getDescendants
dengan$category
objek sebagai parameter dan jumlah level yang Anda butuhkan untuk subkategori (2 dalam kasus Anda).sumber
$block->getDescendents($category, 2)
mana$category
kategori utama. (Saya tidak tahu dari mana Anda mendapatkannya).Selalu mencoba menggunakan repositori. Berikut ini sebuah contoh.
Suntikkan
CategoryRepository
dengan konstrukSekarang Anda dapat menggunakan cara berikut:
Untuk kategori anak 2 tingkat:
sumber
\Magento\Catalog\Api\CategoryRepositoryInterface
sumber
Gunakan kode di bawah ini untuk mendapatkan semua kategori anak aktif dari kategori tertentu.
Function getChildCategories ($ categoryId) memberikan semua kategori anak. Di mana $ categoryId - adalah id kategori induk
$ category-> getChildren () - Ini akan memberikan semua id kategori chid.
sumber