Saya pikir Anda telah melakukan di controller Anda mungkin Anda harus mendapatkan manajer objek yang akan diinisialisasi dengan menggunakan kelas konteks dalam metode __construct.
Hai saya sudah memanggil metode pembangunan dalam file kelas blok saya, silakan cek tautan di bawah ini untuk lebih detail codebeautify.org/alleditor/0b796a Dan terima kasih atas bantuannya.
Pratik
Ini seharusnya bukan jawaban yang diterima. Anda seharusnya tidak menggunakan Objectmanager dalam cara yang dijelaskan.
seanbreeden
22
Jika Anda membutuhkan ID kategori di Magento2, maka Anda bisa mendapatkan nilai menggunakan langkah-langkah berikut untuk diikuti
1. Sertakan penggunaan Magento\Framework\Registrydalam file kelas Anda.
<?php
/**
* class file
*/namespaceVendor\Module\Model;useMagento\Framework\Registry;...
2. Buat objek untuk itu menggunakan objek Manager atau jika Anda menggunakannya di controller kemudian menetapkan dalam __construct()fungsi Anda sebagai \Magento\Framework\Registry $registry:
Untuk Referensi lebih lanjut dalam Magento2 Implementasi konsep ini merujuk file kelas dan fungsi yang disebut fungsi publik _initCategory(). Dalam metode ini mereka mendaftarkan kategori saat ini.
Di atas kelihatannya benar, tetapi saya berpikir bahwa melompat langsung ke Registry bukanlah pendekatan terbaik. Magento menyediakan Layer Resolver yang telah merangkum fungsionalitas itu. (Lihat Blok TopMenu di Plugin Katalog)
Saya sarankan menyuntikkan kelas \ Magento \ Catalog \ Model \ Layer \ Resolver dan menggunakannya untuk mendapatkan kategori saat ini. Ini kodenya:
Jawaban:
Saya pikir Anda telah melakukan di controller Anda mungkin Anda harus mendapatkan manajer objek yang akan diinisialisasi dengan menggunakan kelas konteks dalam metode __construct.
sumber
Jika Anda membutuhkan ID kategori di Magento2, maka Anda bisa mendapatkan nilai menggunakan langkah-langkah berikut untuk diikuti
1. Sertakan penggunaan
Magento\Framework\Registry
dalam file kelas Anda.2. Buat objek untuk itu menggunakan objek Manager atau jika Anda menggunakannya di controller kemudian menetapkan dalam
__construct()
fungsi Anda sebagai\Magento\Framework\Registry $registry
:3. Kemudian Anda cukup menggunakannya dengan kelas sebagai:
Untuk Referensi lebih lanjut dalam Magento2 Implementasi konsep ini merujuk file kelas dan fungsi yang disebut fungsi publik
_initCategory()
. Dalam metode ini mereka mendaftarkan kategori saat ini.sumber
Coba kode ini. ini pasti akan membantu Anda.
sumber
Di atas kelihatannya benar, tetapi saya berpikir bahwa melompat langsung ke Registry bukanlah pendekatan terbaik. Magento menyediakan Layer Resolver yang telah merangkum fungsionalitas itu. (Lihat Blok TopMenu di Plugin Katalog)
Saya sarankan menyuntikkan kelas \ Magento \ Catalog \ Model \ Layer \ Resolver dan menggunakannya untuk mendapatkan kategori saat ini. Ini kodenya:
Inilah yang dilakukan oleh metode getCurrentCategory () di kelas Resolver.
Seperti yang Anda lihat, itu masih menggunakan registri tetapi memberikan cadangan jika gagal.
sumber