Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento-此块模板中未定义的变量_Php_Magento - Fatal编程技术网

Php Magento-此块模板中未定义的变量

Php Magento-此块模板中未定义的变量,php,magento,Php,Magento,我正在制作一个简单的magento块和它的模板 在我的自定义模块中,我有一个config.xml <?xml version="1.0"?> <config> <modules> <AAA_Recentproducts> <version>1.0</version> </AAA_Recentproducts> </modules> <global>

我正在制作一个简单的magento块和它的模板

在我的自定义模块中,我有一个config.xml

<?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();