如何解决Magento 1.7致命错误:在非对象消息上调用成员函数toHtml()

时间:2012-08-12 18:42:25

标签: magento object fatal-error

我正在遇到这种情况。

据我所知,在Magento的早期版本中,如果有人收到此致命错误消息:

Fatal error: Call to a member function toHtml() on a non-object in C:\xampp\htdocs\magento\app\design\frontend\base\default\template\wishlist\view.phtml on line 50

您应该对page.xml文件进行简单的更改,以便:

<block type="core/profiler" output="toHtml"/>

会变成:

<block type="core/profiler" output="toHtml" name="core_profiler"/>

但是现在......运行Magento 1.7这个解决方案似乎不再起作用了!

有人有解决方案吗?

提前致谢!

2 个答案:

答案 0 :(得分:7)

这是人们应该使用 local.xml 进行基本主题布局覆盖的完美示例!

问题在于,当您使用之前的Magento版本时,您在某些时候将wishlist.xml从基本主题复制到您的自定义主题,而不是愿望清单模板文件。

版本1.6和1.7之间的心愿单布局中添加了一些新块。

Line 50 of wishlist/view.phtml正在尝试在名为control_buttons的子块上调用HTML ...

<?php echo $this->getChild('control_buttons')->toHtml();?>

此块仅在1.7中引入,因此您从先前版本获得的wishlist.xml文件未声明该块 - 因此错误“在非对象<上调用成员函数toHtml() /强>“

因此,要解决此问题,您需要尝试将1.7基本wishlist.xml文件与您的自定义版本合并 - 基本上添加1.7中声明的新块。

1.6 wishlist.xml here

1.7 wishlist.xml here

答案 1 :(得分:3)

很明显,您的问题与您提到的xml布局指令无关:

<block type="core/profiler" output="toHtml" name="core_profiler"/>

在文件app \ design \ frontend \ base \ default \ template \ wishlist \ view.phtml

中第50行触发致命错误

我想,您最近更新了magento安装。

请你做下一个实验:

  1. 在您的活动主题临时重命名layout / wishlist.xml到layout / wishlist-back.xml
  2. 清理Magento缓存
  3. 尝试再次重现此问题
  4. 与我们分享结果