Chiamata a una funzione membro setActive () su booleano


10

Ho riscontrato il seguente problema quando stavo cercando di installare un modulo. Quando provo ad accedere al pannello di amministrazione sul mio magento ottengo:

Chiama a una funzione membro setActive () su booleano in C: \ xampp \ htdocs \ project \ vendor \ magento \ module-backend \ Model \ View \ Result \ Page.php on line 27

Ho disabilitato tutti i moduli di terze parti e personalizzati, ho compilato il codice ma ho ancora questo errore.

EDIT: ho fatto un var_dump($itemId)poco sotto la linea in cui l'errore è e $itemidè ' Magento_Backend::dashboard'.

EDIT 2: L'errore è dovuto al fatto che la riga " $this->layout->getBlock('menu');" sopra restituisce false. Non riesco a capire perché questo stia accadendo


Risposte:


14

Proverò a risolvere questo problema se setActive () error () è arrivato dopo che la setup:di:compilesessione è stata distrutta

quindi vai alla directory di Magento e quindi elimina il genere di file creato da di: compile is path: -

magento\generated\metadata\global.php elimina questo file quindi dopo fa riferimento alla tua pagina

questa è una soluzione temporanea per questo errore nel server locale.


L'ho già rimosso e ancora non funziona.
Bhavin Shah,

In realtà ha funzionato per me, tuttavia, è sicuro rimuovere questo file?
Greg,

sì, è sicuro rimuoverlo finché esegui una configurazione: aggiorna in seguito
John

Questo ha funzionato per me. Grazie.
Riddhish Bhayani,

Questo ha funzionato anche per me.
Magento Learner

6

Ho avuto la stessa situazione nello sviluppo dei propri moduli (ho creato / modificato i file di layout per la griglia in adminhtml). Prova a pulire la cache e passa alla modalità di sviluppo:

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

Suppongo che alcune cose memorizzate nella cache non vengano ripulite cache:cleane setup:di:compilein modalità di produzione. È possibile tornare alla modalità di produzione se l'errore andrà in modalità di sviluppo.


Penso di aver fatto la stessa cosa! Si è verificato un problema con il file di layout. Grazie!
Sotiris Oik,

1
php bin / magento setup: di: compile - eseguito questo comando e risolto il mio problema
Pandurang

2

Prova a rimuovere pub/statice var/cachequindi esegui i comandi seguenti

php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy

Dopodiché funzionerà


1
@Priyank Ero nella stessa situazione, lo google e trovo quella domanda su google, una volta che ho avuto modo di risolvere il problema, ho insegnato che è meglio condividere la soluzione. Forse non ti piace perché hai bisogno di un distintivo o qualcos'altro.
Noni,

0

Quando lo fai getBlock()restituisce il blocco o restituisce false se non riesce a trovarlo. È necessario disporre di un controllo sul posto qualcosa del tipo:

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

Il motivo per cui non riesce a trovare il tuo blocco è qualcosa per cui avrei bisogno di maggiori dettagli. Se si utilizza un file xml di layout, assicurarsi che il blocco e la classe del blocco non presentino errori.


0

Il problema è che il layout xml di questo percorso del controller non viene caricato correttamente.

Verificare che il nome e lo spazio dei nomi del controller corrispondano al nome del file di layout. Abbi cura della sensibilità del case.

Per esempio:

  • custom_module_admin_customcontroller_action.xml
  • namespace Custom\Module\Controller\Adminhtml\Customcontroller e non CustomController
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.