致命错误:在非对象上调用成员函数setActive()

时间:2010-09-30 15:48:17

标签: magento

我在Magento的后端出现以下错误:

Fatal error: Call to a member function setActive() on a non-object in /var/www/vhosts/pro-pin.ca/httpdocs/app/code/core/Mage/Adminhtml/Controller/Action.php on line 82

我已经浏览了社区论坛,但发现这是由于神奇的滑块或灯箱扩展。我没有在任何其他服务器上遇到此问题。

任何帮助请...

5 个答案:

答案 0 :(得分:1)

根据行号,我主要运行的是不同版本的Magento,但如果你看Action.php,你会看到类似的内容

protected function _setActiveMenu($menuPath)
{
    $this->getLayout()->getBlock('menu')->setActive($menuPath);
    return $this;
}

致电

$this->getLayout()->getBlock('menu')

应该返回一个块对象,但是如果你的系统不是。其中一个扩展中最可能的罪魁祸首是从您的布局中移除名为menu的块,您的某个开发人员摆弄了一些布局和/或Core文件。

在您的开发环境中删除所有模块。如果问题消失,请重新启用,直到它再次启动,您将知道哪个模块导致您出现问题。如果问题没有消失,请抓取Magento的新副本并开始传播文件。

答案 1 :(得分:1)

我删除了所有扩展程序但尝试但没有成功,但是当我更换了adminhtml布局文件时,它工作了。 布局文件目录为adminhtml / default / default / layout /

答案 2 :(得分:0)

在删除模块之前,请尝试手动清除缓存文件。

转到var / cache并删除文件夹中的所有目录(如果提示有任何被拒绝的消息,请跳过这些项目)。请耐心等待,可能会有几千个缓存文件。完成后,尝试再次登录,10次中有9次可以。

答案 3 :(得分:0)

您将需要删除local.xml文件并重新安装您的商店(不会丢失数据 - 这会安装magento引擎而不会删除您的数据。

希望这会有所帮助。

答案 4 :(得分:0)

尝试:

ini_set('memory_limit', '256M');

index.php中或增加内存到你的php.ini。