加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 为什么我对Magento Block的getTemplateFile方法的调用返

发布时间:2020-12-13 16:17:06 所属栏目:PHP教程 来源:网络整理
导读:当我在索引控制器中使用以下代码时 ?phpclass Nofrills_Booklayout_IndexController extends Mage_Core_Controller_Front_Action{ public function indexAction() { $block = new Mage_Core_Block_Template(); $block-setTemplate('helloworld.phtml'); var_
当我在索引控制器中使用以下代码时

<?php
class Nofrills_Booklayout_IndexController  extends Mage_Core_Controller_Front_Action
{
    public function indexAction()
    {
        $block = new Mage_Core_Block_Template();        
        $block->setTemplate('helloworld.phtml');
        var_dump($block->getTemplateFile());
    }
}

我希望得到这样的结果

string 'frontend/base/default/template/helloworld.phtml' (length=47)

但是,在我的系统上,我得到了

null

我的系统有什么问题,它为调用返回null

<code>getTemplateFile</code>

或者我如何自己调试?

发生在Magento 1.7.0.1上.

解决方法

正如他在 original comment on the OP中指出的那样,这个问题需要一个tarball来解决问题.

必须加载Mage_Core_Block_Abstract的类定义,否则会输出有关include()或非对象操作的错误,或者根据开发人员模式可能根本没有输出.

应该注意getTemplateFile() was not defined到Magento 1.4.1.0.最可能的问题是Mage_Core_Block_Template或Mage_Core_Model_Design_Package的错误版本,无论是在本地或社区代码池中修改,还是报告的Magento版本不正确.有用的输出如下:

public function indexAction()
{
    ini_set('display_errors',1);
    Mage::setIsDeveloperMode(true);

    $block = new Mage_Core_Block_Template();
    $block->setTemplate('helloworld.phtml');
    $debug = new ReflectionClass($block);

    echo Mage::getVersion();

    Zend_Debug::dump($debug->getFileName());
    Zend_Debug::dump($debug->getMethods());
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读