Php Magento-此块模板中未定义的变量
我正在制作一个简单的magento块和它的模板 在我的自定义模块中,我有一个config.xmlPhp Magento-此块模板中未定义的变量,php,magento,Php,Magento,我正在制作一个简单的magento块和它的模板 在我的自定义模块中,我有一个config.xml <?xml version="1.0"?> <config> <modules> <AAA_Recentproducts> <version>1.0</version> </AAA_Recentproducts> </modules> <global>
<?xml version="1.0"?>
<config>
<modules>
<AAA_Recentproducts>
<version>1.0</version>
</AAA_Recentproducts>
</modules>
<global>
<blocks>
<recentproducts>
<class>AAA_Recentproducts_Block</class>
</recentproducts>
</blocks>
</global>
</config>
1
AAA\u最新产品\u块
这是我的街区
<?php
class AAA_Recentproducts_Block_Recentproducts extends Mage_Core_Block_Template {
public function getRecentProducts() {
$products = Mage::getModel("catalog/product")
->getCollection()
->addAttributeToSelect('*')
->setOrder('entity_id', 'DESC')
->setPageSize(5);
return $products;
}
}
近期产品
产品
我得到的错误是:2015-11-02T08:53:55+00:00错误(3):注意:未定义的变量:第2行的this-in/var/www/html/magento/app/design/frontend/smartwave/granada/template/recentproducts/recentproducts.phtml
有人知道发生此错误的原因吗?如果您不在类中,则不能使用
$this
。您必须创建AAA\u Recentproducts\u Block\u Recentproducts
的实例,并调用该对象上的函数
$object = new AAA_Recentproducts_Block_Recentproducts();
$products = $object->getRecentProducts();
我不推荐使用变量名
$object
,但我现在想不出更好的。明白了。如果没有布局xml文件,可以使用下面的代码调用块
$block = Mage::app()->getLayout()->createBlock('recentproducts/recentproducts');
$products = $block->getRecentProducts();
在phtml文件中使用此代码对我来说,问题来自
$this->getTest()代码>在“s”之间有一个奇怪的隐藏字符-
由于fetchView在Block_模板中的include,您应该能够使用它。您可以在Magento内的模板中使用$this
$this
引用块实例。在所有教程中,它们都使用$this实例,但不知何故它不起作用。如果我自己启动这个类,它可以工作。你可以发布你的布局XML Safari吗?我没有更改布局XML。你需要告诉Magento使用你的块和模板-你在管理{{}调用中这样做了吗?你能提供这个吗?你能展示你的布局XML吗?我的猜测是你没有应用正确的块或模板
$block = Mage::app()->getLayout()->createBlock('recentproducts/recentproducts');
$products = $block->getRecentProducts();