0

我正在使用以下代码从 Controller 显示页面

$html = $this->getLayout()
        ->createBlock('mymodule/myblock')
        ->setTemplate('mymodule/mypage.phtml')
        ->toHtml();
echo $html;

问题是我不断收到同样的错误

Not valid template file:frontend/base/default/template/mymodule/mypage.phtml

现在,该文件不在“base”文件夹下,而是在“defaul”下,但我不确定为什么 Magento 一直在那里搜索它。我在这个显示之前做了 setTheme 方法

Mage::getDesign()->setPackageName("default")->setTheme("default");

但这无济于事,“基本”文件夹仍然是搜索。

问题是 - 我错过了什么?

4

1 回答 1

0

所以这就是你base出错的原因。Magento 在搜索模板文件时实现了某种回退机制:

  • 首先它在当前包和主题中搜索它,
  • 然后在当前包的默认主题中,
  • 比默认包和默认主题,
  • 最后在“base”中,最后一个是进入错误消息的那个。

您应该仔细检查模板文件名的拼写和setTemplate方法中的字符串,99% 的时候这只是一些小错字造成的。

如果不是这种情况,请检查您现在使用的是什么主题,也许您将模板文件插入到错误的主题/包中。

于 2012-09-24T19:00:19.470 回答