Llamar a una función miembro setActive () en boolean


10

Encontré el siguiente problema cuando intentaba instalar un módulo. Cuando intento acceder al panel de administración en mi magento obtengo:

Llame a una función miembro setActive () en boolean en C: \ xampp \ htdocs \ project \ vendor \ magento \ module-backend \ Model \ View \ Result \ Page.php en la línea 27

Deshabilité todos los módulos personalizados y de terceros, compilé el código pero aún recibo este error.

EDITAR: Hice un var_dump($itemId)justo debajo de la línea donde está el error y el $itemides ' Magento_Backend::dashboard'.

EDITAR 2: El error se debe a que la línea " $this->layout->getBlock('menu');" anterior devuelve falso. Sin embargo, no puedo encontrar por qué sucede esto


Respuestas:


14

Intentaré esto para resolver el problema si el error setActive () llegó después setup:di:compilede que el período de sesión se destruya

vaya al directorio de Magento y luego elimine el género de archivo ted by di: compile is path: -

magento\generated\metadata\global.php elimine este archivo y luego haga referencia a su página

Esta es una solución temporal para este error en el servidor local.


Ya lo eliminé y todavía no funciona.
Bhavin Shah

En realidad funcionó para mí, sin embargo, ¿es seguro eliminar este archivo?
Greg

sí, es seguro eliminarlo siempre que realice una configuración: actualice después
John

Esto funcionó para mí. Gracias.
Riddhish Bhayani

Esto funcionó para mí también.
Magento Learner

6

Tuve la misma situación en el desarrollo de módulos propios (creé / cambié los archivos de diseño para la cuadrícula en adminhtml). Intenta limpiar el caché y cambia al modo de desarrollo:

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

Supongo que algunas cosas en caché no se limpian en cache:cleany setup:di:compileen modo de producción. Puede volver al modo de producción si el error desaparece en el modo de desarrollo.


¡Creo que hice lo mismo! Fue un problema de archivo de diseño. ¡Gracias!
Sotiris Oik

1
php bin / magento setup: di: compile - ejecuté este comando y resolvió mi problema
Pandurang

2

Intente eliminar pub/staticy var/cacheluego ejecute los siguientes comandos

php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy

Después de eso funcionará


1
@Priyank Estaba en la misma situación, lo busco en Google y encuentro esa pregunta en Google, una vez que pude resolver el problema, enseñé que es mejor compartir la solución. Tal vez simplemente no te gusta porque necesitas alguna insignia u otra cosa.
Noni el

0

Cuando lo hace getBlock(), devuelve el bloque o devuelve falso si no puede encontrarlo. Necesita tener un cheque en el lugar algo como:

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

La razón por la que no puede encontrar su bloque es algo para lo que necesitaría más detalles. Si está utilizando un archivo xml de diseño, asegúrese de que el bloque y la clase del bloque no tengan ningún error.


0

El problema es que el diseño xml de esta ruta del controlador no se carga correctamente.

Verifique que el nombre y el espacio de nombres del controlador coincidan con el nombre del archivo de diseño. Cuida la sensibilidad a las mayúsculas y minúsculas.

Por ejemplo:

  • custom_module_admin_customcontroller_action.xml
  • namespace Custom\Module\Controller\Adminhtml\Customcontroller y no CustomController
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.