Saya mencoba menginstal plugin dan saya menghapus var / generation dan var / cache / *. Saya telah memeriksa MAGE_MODE dan saya dalam pengembang tetapi sekarang ketika saya mengakses front-end dan admin saya mendapatkan kesalahan acak yang mengatakan hal-hal jahat seperti:
Class Magento\Customer\Model\CustomerFactory does not exist
Kelas Magento \ Penjualan \ Model \ ResourceModel \ Laporan \ OrderFactory tidak ada
Beberapa kelas sedang dibuat, tetapi tidak semua. Saya sudah mencoba membersihkan cache lagi, dan membuat folder tapi kemudian saya hanya mendapatkan kesalahan yang sama.
Ada ide?
Jawaban:
Magento 2 menghasilkan kelas-kelas Pabrik di dalam
var/generation
direktori. Jadi, jika ada masalah izin folder atau masalah pemilik folder dengan direktori itu maka kelas pabrik tidak dapat dibuat dan Anda mendapatkan kesalahan tersebut.Ketika Anda menghapus
var/generation
direktori dan mengatur izin yang sesuai untuk itu maka kesalahan ini harus diselesaikan.Lihat lebih lanjut tentang pembuatan Kode di Magento 2
sumber
var/di
atauvar/cache
, lihat devdocs.magento.com/guides/v2.2/install-gde/trouble/…Bagi saya, saya menghapus
var/generation
folder lalu menjalankanmagento setup:di:compile
yang menghasilkan semua kelas yang diperlukan.(dalam kasus saya: Kemudian saya menemukan masalah cache, saya menghapus folder cache awal.)
Lalu itu memecahkan masalah saya. Bersulang !!
sumber
Di magento, versi baru seperti 2.2.2 dan di atas jalur pembuatan kode ini diubah menjadi
jadi Anda perlu memeriksa izin untuk folder ini juga. Anda perlu menjalankan perintah berikut di root direktori instalasi Magento akan menyelesaikan masalah ini:
sumber
Perintah berikut ini perlu dijalankan:
Juga, izin yang tepat diperlukan. Jika sedang diproduksi, Anda perlu menjalankan izin yang tepat. Tetapi, pada mesin lokal, Anda dapat menjalankan izin penuh:
sumber
Berikan 777 izin dan ubah kepemilikan menjadi www-data folder / kode yang dihasilkan lalu jalankan perintah
sudo php bin/magento setup:di:compile
hapus cache dan booming masalah Anda terpecahkansumber
Ini hanya
<magento-root>/var/
masalah izin folder.Jalankan perintah di bawah ini menggunakan mode CLI
sumber
Magento 2 membuat kelas pabrik di
var/generation
folder dan jika Anda menambahkan parameter baru di kelas Anda__construct()
dan itu tidak ada maka Magento 2 melempar pesan kesalahan di atas. Meskipun ada beberapa solusi yang sudah diberikan untuk pertanyaan Anda, saya dapat menyarankan Anda solusi lain yang tidak mengharuskan Anda untuk menghapus folder generasi Anda. Silakan gunakan perintah di bawah ini setelah perubahan dibuat terkait dengan kelas pabrik:Perintah ini dapat lebih bermanfaat di server produksi.
sumber
Kelas ... Pabrik tidak ada berarti kelas model Anda tidak dimuat. Sebagai Magento 2 didasarkan pada pemrograman modular sehingga kita perlu menentukan kelas model di mana kita ingin menggunakan secara eksplisit. Kita dapat menggunakan kelas model kita dalam dua jenis:
1.dengan "menggunakan"
Langsung
Ketika Anda menekan URL ( http://domain.com/nama depan modul Anda) plugin Anda di browser daripada Magento menghasilkan kode untuk modul Anda seperti di bawah ini:
Dalam kasus Anda, Anda perlu memeriksa "CustomerFactory" dan "OrderFactory" digunakan sebagai format di atas atau tidak.
sumber