为什么从模板文件中的模型调用函数没有输出?

时间:2013-02-24 12:34:26

标签: php magento

我是MVC和php的新手。现在在magento app / code / core / Mage / Review / Model / Review.php

我添加代码。

 public function mgtest(){
        return 'hello world!';
    }

在班级

class Mage_Review_Model_Review extends Mage_Core_Model_Abstract
{ }

在magento cms页面中,我添加了代码:

 {{block type="core/template" name="review" template="catalog/product/reviewall.phtml"}}

网址密钥为 review.html

然后添加文件reviewall.phtml(app / design / frontend / default / mytheme / template / catalog / product / reviewall.phtml)

然后在其文件中添加测试代码。

<?php echo $this->mgtest();?>

当我访问网址时mysiteurl/review.html。没有hello world输出。为什么?谢谢。怎么纠正呢?模型中的所有文件都做了什么?如果我想调用phtml文件的功能。我该怎么办?

1 个答案:

答案 0 :(得分:0)

不要编辑核心以添加新功能。在app/code/local目录中添加所有添加/修改。

在您现有的代码中,我看到两个问题:

  • CMS页面中的块类型应为review/review而不是core/template
  • 您已将功能创建为matest(),但将其称为mgtest()

您已经在reviewall.phtml中引用了$this,并调用了matest方法,该方法应该位于Review_Block_Review而不是Core_Block_Template,因此您的CMS块类型必须是review/review

我只是看到您在模型中放置了matest方法,请将其放入Block中,因为您无法使用$ this直接从模板文件中查看模型。

一旦你知道如何在Magento中完成任务,建议你创建自己的自定义模块(在本地目录中)。