0

我在这里遇到了一个情况。

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

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 这个解决方案似乎不再起作用了!

有人有解决方案吗?

提前致谢!

4

2 回答 2

7

这是为什么人们应该使用local.xml来覆盖基本主题布局的一个完美示例!

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

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

wishlist/view.phtml的第 50 行试图在名为control_buttons...的子块上调用 toHtml

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

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

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

1.6 wishlist.xml 这里

1.7 wishlist.xml 在这里

于 2012-08-12T21:54:18.017 回答
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. 与我们分享结果
于 2012-08-12T19:11:15.633 回答