Panggil ke fungsi anggota setActive () di boolean

10

Saya mengalami masalah berikut ketika saya mencoba memasang modul. Ketika saya mencoba mengakses panel admin di magento saya, saya mendapatkan:

Panggil ke fungsi anggota setActive () pada boolean di C: \ xampp \ htdocs \ project \ vendor \ magento \ module-backend \ Model \ View \ Result \ Page.php on line 27

Saya menonaktifkan semua modul pihak ketiga dan khusus, saya mengkompilasi kode tetapi saya masih mendapatkan kesalahan ini.

EDIT: Saya melakukan var_dump($itemId)tepat di bawah garis di mana kesalahan itu dan itu $itemidadalah ' Magento_Backend::dashboard'.

EDIT 2: Kesalahannya adalah karena " $this->layout->getBlock('menu');" baris di atas mengembalikan false. Saya tidak dapat menemukan mengapa ini terjadi

Sotiris Oik
sumber

Jawaban:

14

Saya akan mencoba untuk menyelesaikan masalah ini jika setActive () error () tiba setelah setup:di:compileitu karena sesi dihancurkan

jadi pergi ke direktori Magento dan kemudian hapus genre file ted by di: compile is path: -

magento\generated\metadata\global.php hapus file ini kemudian setelah merujuk halaman Anda

ini adalah solusi sementara untuk kesalahan ini di server lokal.

Nirali
sumber
Saya sudah menghapusnya dan masih tidak berfungsi.
Bhavin Shah
Ini benar-benar bekerja untuk saya, namun, apakah aman untuk menghapus file ini?
Greg
ya aman untuk menghapus selama Anda melakukan pengaturan: tingkatkan sesudahnya
John
Ini berhasil untuk saya. Terima kasih.
Riddhish Bhayani
Ini juga bekerja untuk saya.
Magento Learner
6

Saya memiliki situasi yang sama dalam pengembangan modul sendiri (saya membuat / mengubah file layout untuk grid di adminhtml). Cobalah untuk membersihkan cache dan beralih ke mode pengembangan:

$ ./bin/magento cache:clean
$ ./bin/magento deploy:mode:set developer

Saya kira beberapa hal yang di-cache tidak dibersihkan pada cache:clean& setup:di:compiledalam mode produksi. Anda dapat beralih kembali ke mode produksi kembali jika kesalahan akan hilang dalam mode pengembangan.

Alex Gusev
sumber
Saya pikir saya melakukan hal yang sama! Itu masalah file tata letak. Terima kasih!
Sotiris Oik
1
setup php bin / magento: di: compile - mengeksekusi perintah ini dan menyelesaikan masalah saya
Pandurang
2

Cobalah untuk menghapus pub/staticdan var/cachekemudian jalankan perintah di bawah ini

php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy

Setelah itu akan bekerja

Noni
sumber
1
@Priyank Saya berada dalam situasi yang sama, saya mencari di google dan menemukan pertanyaan itu di google, setelah saya menyelesaikan masalah, saya mengajarkan yang lebih baik untuk berbagi solusinya. Mungkin Anda hanya tidak suka karena Anda memerlukan lencana atau sesuatu yang lain.
Noni
0

Ketika Anda melakukannya, getBlock()ia mengembalikan blok atau mengembalikan salah jika tidak dapat menemukannya. Anda perlu memiliki cek di tempat seperti:

$block = $layout->getBlock('name);
If ($block){
//execute the rest
}

Alasan mengapa tidak dapat menemukan blok Anda adalah sesuatu yang saya perlukan untuk rincian lebih lanjut. Jika Anda menggunakan file xml layout pastikan bahwa blok dan kelas blok tidak memiliki kesalahan.

CompactCode
sumber
0

Masalahnya adalah tata letak xml jalur pengontrol ini tidak dimuat dengan benar.

Periksa apakah nama dan namespace controller sesuai dengan nama file layout. Jaga sensitivitas case.

Sebagai contoh:

  • custom_module_admin_customcontroller_action.xml
  • namespace Custom\Module\Controller\Adminhtml\Customcontroller dan tidak CustomController
Attila Kiss
sumber