Magento块输出给出空字符串

Ash*_*ame 1 magento

我正在尝试解决我的块的输出是空字符串的问题.

我将其追溯到我可以看到在模板文件中评估PHP语句的程度,但在toHtml()类内部Mage_Core_Block_Abstract,$html = $this->_toHtml();将空字符串赋值给$html.

我进一步挖掘它,并发现在里面fetchView(),$html = ob_get_clean();给它分配空字符串,即使模板被包含在这一行之上,我也可以看到它使用调试器进行评估.

从这里我对如何调试这一点毫无头绪,可能是我在模块中遗漏了一些错误(我是Magento的初学者).

以下是该模块的相关代码:

应用程序/代码/本地/ AnattaDesign/AbandonedCarts的/ etc/config.xml中

<config>
    <global>
        <blocks>
            <anattadesign_abandonedcarts>
                <class>AnattaDesign_AbandonedCarts_Block</class>
            </anattadesign_abandonedcarts>
        </blocks>
    </global>
    <adminhtml>
    <layout>
        <updates>
            <anattadesign_abandonedcarts>
                <file>layout.xml</file>
            </anattadesign_abandonedcarts>
        </updates>
    </layout>
</adminhtml>
Run Code Online (Sandbox Code Playgroud)

应用程序/设计/ adminhtml /碱/默认/布局/ layout.xml

<?xml version="1.0" encoding="utf-8"?>
<layout>
    <adminhtml_dashboard_index>
        <reference name="head">
            <action method="addCss">
                <stylesheet>anattadesign/abandonedcarts/css/style.css</stylesheet>
            </action>
            <action method="addJs">
                <script>anattadesign/abandonedcarts/zepto.js</script>
            </action>
            <action method="addJs">
                <script>anattadesign/abandonedcarts/adminhack.js</script>
            </action>
        </reference>
    </adminhtml_dashboard_index>
</layout>
Run Code Online (Sandbox Code Playgroud)

应用程序/代码/本地/ AnattaDesign/AbandonedCarts /控制器/ WidgetController.php

<?php

class AnattaDesign_AbandonedCarts_WidgetController extends Mage_Adminhtml_Controller_Action {

    public function indexAction() {
        echo "index action of widget controller";
        die();
    }

    public function renderAction() {
        $html = $this->getLayout()->createBlock( 'anattadesign_abandonedcarts/widget', 'root' )->setTemplate( 'anattadesign/abandonedcarts/widget.phtml' )->toHtml();
        $this->getResponse()->setBody( $html );
        die();
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序/代码/本地/ AnattaDesign/AbandonedCarts /座/ Widget.php

<?php

class AnattaDesign_AbandonedCarts_Block_Widget extends Mage_Core_Block_Template {

}
Run Code Online (Sandbox Code Playgroud)

我正在由一个管理员控制器运行它并解决问题renderAction().

Ren*_*art 5

删除方法renderAction()中的die()

class AnattaDesign_AbandonedCarts_WidgetController extends Mage_Adminhtml_Controller_Action {

    ....

    public function renderAction() {
        $html = $this->getLayout()->createBlock( 'anattadesign_abandonedcarts/widget')
                ->setTemplate( 'coming.phtml' )
                ->toHtml();
        $this->getResponse()->setBody( $html );
    }
}
Run Code Online (Sandbox Code Playgroud)