在magento中调用CMS块中的属性

时间:2012-12-04 19:03:39

标签: php magento block

所以我在这个模板中有一个cms块,位于每个产品列表的旁边。

我在CMS块中有这个代码:

{{block type="core/template" name="some_unique_name" template="myfolder/my_dynamic_php_content.phtml"}}

这在my_dynamic_php_content.phtml中:

<?php echo $_product->getData('product_brand'); ?>

我收到错误:

  

在非对象中调用成员函数getData()   /home/magento/public_html/shorepowerinc.com/app/design/frontend/fortis/default/template/myfolder/my_dynamic_php_content.phtml   在第1行

我是一个新手,所以如果有人能解释这里发生了什么,我会非常感激!

1 个答案:

答案 0 :(得分:2)

这件事中缺少两件事;

1)您需要加载当前产品的模型和

2)显示属性时,您使用了错误的语法。

要在块中加载当前产品型号,请将其添加到my_dynamic_php_content.phtml模板的顶部;

<?php       
   $_prodID = Mage::registry('current_product')->getId();
   $_product = Mage::getModel('catalog/product')->load($_prodID );
?> 

然后在模板中输出属性;

<?php echo $_product->getProduct_brand() ?>

(注意它是使用过的camelcase,但如果你在设置属性时使用了下划线,则保留下划线。)

修改

上述答案可行,但下划线将由Varien_Object::_underscore()处理,现行惯例是使用$ _product-&gt; getData('product_brand')或$ _product-&gt; getProductBrand()。感谢Ben Marks在下面的评论中提供此信息。