【问题标题】:Magento: IndexController doesn't load phtml fileMagento:IndexController 不加载 phtml 文件
【发布时间】:2015-09-05 07:49:24
【问题描述】:

如标题中所述,我无法让我的 IndexController 在它的索引(或任何其他)操作中加载我的 view.phtml。希望有人可以帮助告诉我我做错了什么/遗漏了什么。这是我得到的:

app/etc/modules/Namespace_MyModule.xml

<?xml version="1.0"?>

<config>
    <modules>
        <Namespace_MyModule>
            <active>true</active>
            <codePool>local</codePool>
        </Namespace_MyModule>
    </modules>
</config>

app/code/local/Namespace/MyModule/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>
    <modules>
        <Namespace_MyModule>
            <version>0.3</version>
        </Namespace_MyModule>
    </modules>


    <frontend>

        <layout>
            <updates>
                <namespace_mymodule>
                    <file>mymodule.xml</file>
                </namespace_mymodule>
            </updates>
        </layout>

        <routers>
             <namespace_mymodule>
                <use>standard</use>
                  <args>
                     <module>Namespace_MyModule</module>
                     <frontName>something</frontName>
                  </args>
             </namespace_mymodule>
        </routers>

    </frontend>

</config>

app/design/frontend/default/namespace/layout/mymodule.xml

<?xml version="1.0" encoding="UTF-8"?>

<layout version="0.1.0">

    <something_index_index>
        <reference name="content">
            <block type="core/template" name="namespace_mymodule_view" template="mymodule/view.phtml" />
        </reference>
    </something_index_index>

</layout>

app/code/local/Namespace/MyModule/controllers/IndexController.php

<?php

class Namespace_MyModule_IndexController extends Mage_Core_Controller_Front_Action {

    public function indexAction() {
        $this->loadLayout();
        $this->renderLayout();
    }
}

app/design/frontend/default/namespace/template/mymodule/view.phtml

<h1><?php echo "What ever"; ?></h1>

【问题讨论】:

    标签: php xml magento


    【解决方案1】:

    你在布局文件中犯了一个错误。您已指定句柄,如

    frontname_controller_action
    

    所以试试这段代码

    <layout version="0.1.0">
    
        <something_index_index>
            <reference name="content">
                <block type="core/template" name="namespace_mymodule_view" template="mymodule/view.phtml" />
            </reference>
        </something_index_index>
    
    </layout>
    

    【讨论】:

    • 感谢您的回答!我修复了它,但它仍然不想工作。我唯一的猜测是我将模板文件放在了错误的文件夹中,虽然我不知道......我已经尝试过 app/design/frontend/default/namespace/template... 和 app/design/frontend/base/namespace /模板...
    • @mpfmon Zend_Debug::dump($this-&gt;getLayout()-&gt;getUpdate()-&gt;getHandles()); exit; 将其放入您的操作中(在$this-&gt;renderLayout(); 之后)并检查您的句柄是否已加载。
    • 这就是它给我的:
      array(5) { [0] => string(7) “默认” [1] =>字符串(13)“STORE_default”; [2] =>字符串(30)“THEME_frontend_default_default” [3] =>字符串(22)“namespace_mymodule_index_index”; [4] =>字符串(19)“customer_logged_out”; } 
      对不起,我对这些东西很陌生...
    • @mpfmon 请参阅此link。它可能对你有帮助
    【解决方案2】:

    好的,我现在修好了。 有些人可能因此讨厌我,但问题是我的模板没有加载。我不得不更改 Magento 管理区域中的设置。

    General->Design->Themes->Templates->“Your Template”(在我的例子中是命名空间) 一般->设计->主题->布局->“你的模板”(在我的例子中是命名空间)

    或者直接添加到

    常规->设计->主题->默认->“你的模板”(在我的例子中是命名空间)

    由于 Magento 有一个备用系统,所以它的工作方式相同。

    现在我想知道如何添加自定义 phtml 文件而不需要将它们放入您当前使用的模板文件夹中,但这是另一个主题。

    感谢 Meenakshi Sundaram R 的帮助和 感谢所有花时间阅读所有内容的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      相关资源
      最近更新 更多