[英]Magento: Call Product Model method from view
我創建了一個自定義模型來覆蓋核心的產品模型。
// app/code/local/Commerce121/Catalog/Model/Product.php
include('Mage/Catalog/Model/Product.php');
class Commerce121_Catalog_Model_Product extends Mage_Catalog_Model_Product
{
public function getCompatibilityGrid()
{
return '<table width="100%"><tr><th>Year</th><th>Model</th><tr>Engine</tr></tr></table>';
}
}
// app/code/local/Commerce121/Catalog/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Commerce121_catalog>
<version>1.0</version>
</Commerce121_catalog>
</modules>
<global>
<models>
<catalog>
<rewrite>
<product>Commerce121_Catalog_Model_Product</product>
</rewrite>
</catalog>
</models>
</global>
</config>
// app/etc/modules/Commerce121_Catalog.xml
<?xml version="1.0"?>
<config>
<modules>
<Commerce121_catalog>
<active>true</active>
<codepool>local</codepool>
</Commerce121_catalog>
</modules>
</config>
在管理員中,模塊被列為已啟用。
在app/design/frontend/.../default/template/catalog/product/view/view.phtml
我補充說:
echo $_product->getCompatibilityGrid();
但是什么也沒顯示(這是視圖,因為echo 'bla'
顯示了)。 $ _product是對控制器的引用嗎? 如果是這樣,我是否還需要擴展控制器?
未覆蓋Turs out產品模型。 config.xml中缺少聲明模塊的部分:
<commerce121_catalog>
<class>Commerce121_Catalog_Model</class>
</commerce121_catalog>
應該是這樣的:
<?xml version="1.0"?>
<config>
<modules>
<Commerce121_Catalog>
<version>0.1.0</version>
</Commerce121_Catalog>
</modules>
<global>
<models>
<commerce121_catalog>
<class>Commerce121_Catalog_Model</class>
</commerce121_catalog>
<catalog>
<rewrite>
<product>Commerce121_Catalog_Model_Product</product>
</rewrite>
</catalog>
</models>
</global>
</config>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.