Php Magento 1.9扩展核心类

Php Magento 1.9扩展核心类,php,magento,model,magento-1.9,extend,Php,Magento,Model,Magento 1.9,Extend,我想扩展核心产品类并添加一些功能 我创建了app\code\local\ast\Catalog\etc\config.xml文件 <?xml version="1.0"?> <config> <modules> <ast_Catalog> <version>0.0.1</version> </ast_Catalog> </module

我想扩展核心产品类并添加一些功能

我创建了app\code\local\ast\Catalog\etc\config.xml文件

<?xml version="1.0"?>
<config>
    <modules>
         <ast_Catalog>
            <version>0.0.1</version>
        </ast_Catalog>
    </modules>
    <global>
        <models>
            <catalog>
                <rewrite>
                    <product>ast_Catalog_Model_Product</product>
                </rewrite>
            </catalog>
        </models>
   </global>
</config>
现在,当我尝试在app\design\frontend\ast\default\template\catalog\product\view.phtml文件中使用函数makeBlue()时

<div class="product-shop">
 <?php 
               ....
               echo 'hello';
               echo $this->makeBlue(); 
               ....       
 ?>    

怎么了?

您在创建模块时没有遵守命名约定。模块名称空间和模块名称应以大写字母开头,尝试在xml、类名和文件夹名称中将“ast”更改为“ast”

问题是我扩展了类ast\u Catalog\u Model\u Product而不是Mage\u Catalog\u Block\u Product\u View。更改后,将类扩展为Mage\u Catalog\u Block\u Product\u View,一切正常

class ast_Catalog_Model_Product extends Mage_Catalog_Model_Product 
{

    public function makeBlue() 
    {
        echo 'makeBlue';
    }   

}
<div class="product-shop">
 <?php 
               ....
               echo 'hello';
               echo $this->makeBlue(); 
               ....       
 ?>    
Invalid method Mage_Catalog_Block_Product_View::makeBlue(Array
(
)
)

#0 I:\WWW\Sklep_www4\app\design\frontend\ast\default\template\catalog\product\view.phtml(45): Varien_Object->__call('makeBlue', Array)
.......