0

次のコードを使用して、コントローラーからページを表示しています

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

問題は、同じエラーが発生し続けることです

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

現在、ファイルは「ベース」フォルダーではなく「デフォルト」フォルダーにありますが、Magento がそこで検索し続ける理由がわかりません。この表示の前に setTheme メソッドを実行しました

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

しかし、それは役に立ちません。それでも「ベース」フォルダーは検索です。

質問は - 何が足りないのですか?

4

1 に答える 1

0

baseだからここにあなたがエラーになる理由があります。Magentoは、テンプレートファイルの検索中に、ある種のフォールバックメカニズムを実装します。

  • まず、現在のパッケージとテーマで検索します。
  • 次に、現在のパッケージのデフォルトのテーマで、
  • デフォルトのパッケージとデフォルトのテーマよりも、
  • そして最後に「ベース」にあり、最後のものがエラーメッセージになります。

テンプレートファイル名とsetTemplateメソッド内の文字列のスペルを注意深く確認する必要があります。99%の場合、これはほんの少しのタイプミスが原因です。

そうでない場合は、現在使用しているテーマを確認してください。テンプレートファイルを間違ったテーマ/パッケージに挿入している可能性があります。

于 2012-09-24T19:00:19.470 に答える