在布尔值上调用成员函数setActive()


10

尝试安装模块时遇到以下问题。当我尝试访问我的magento上的管理面板时,我得到:

在第27行的C:\ xampp \ htdocs \ project \ vendor \ magento \ module-backend \ Model \ View \ Result \ Page.php中的布尔值上调用成员函数setActive()

我禁用了所有第三方模块和自定义模块,我编译了代码,但仍然收到此错误。

编辑:我var_dump($itemId)在错误所在的行下面做了一个,并且$itemid是' Magento_Backend::dashboard'。

编辑2:错误是因为$this->layout->getBlock('menu');上面的行“ ”返回false。我找不到为什么会这样


Answers:


14

我将尝试解决此问题,如果setup:di:compile在会话的详细信息被破坏之后到达setActive()error()

因此,请转到Magento目录,然后删除di:compile类型的文件,其路径为:-

magento\generated\metadata\global.php 删除此文件,然后在引用您的页面后

这是针对本地服务器中此错误的临时解决方案。


我已经删除了它,但仍然无法正常工作。
Bhavin Shah

它实际上对我有用,但是,删除此文件是否安全?
格雷格

是的,只要您进行设置,就可以安全删除:之后进行升级
约翰

这对我有用。谢谢。
Riddhish Bhayani

这也为我工作。
Magento Learner

6

我在开发自己的模块时遇到了同样的情况(我在adminhtml中为网格创建/更改了布局文件)。尝试清除缓存切换到开发模式:

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

我想有些东西缓存上未清理cache:cleansetup:di:compile生产模式。如果开发模式中发生错误,则可以切换回生产模式。


我想我做了同样的事情!这是一个布局文件问题。谢谢!
Sotiris Oik,

1
php bin / magento setup:di:compile-执行此命令并解决了我的问题
Pandurang

2

不要尝试删除pub/staticvar/cache然后运行下面的命令

php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy

之后它将起作用


1
@Priyank我处在相同的情况下,我用谷歌搜索并在Google上找到了这个问题,一旦我解决了这个问题,我就教它更好地共享解决方案。也许您只是不喜欢,因为您需要一些徽章或其他东西。
诺丽

0

执行getBlock()此操作时,它将返回该块;如果找不到该块,则将返回false。您需要进行以下检查:

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

它找不到您的块的原因是我需要更多详细信息。如果使用布局xml文件,请确保该块和该块的类没有任何错误。


0

问题是此控制器路径的布局xml无法正确加载。

检查控制器的名称和名称空间是否与布局文件名称匹配。注意区分大小写。

例如:

  • custom_module_admin_customcontroller_action.xml
  • namespace Custom\Module\Controller\Adminhtml\Customcontroller 并不是 CustomController
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.