Magento:如何覆盖资源文件?

时间:2015-08-13 11:44:53

标签: php mysql magento override

我想创建一个magento模块,我需要覆盖该文件

app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Attribute/Backend/Tierprice.php

我尝试使用以下代码,但收到错误"Invalid backend model specified: catalog/product_attribute_backend_tierprice"

 <catalog>
  <rewrite>
    <product_attribute_backend_tierprice>
      Module_Catalog_Model_Product_Attribute_Backend_Tierprice
    </product_attribute_backend_tierprice>
  </rewrite>
</catalog>

<catalog_resource>
  <class>Mage_Catalog_Model_Resource</class>
      <rewrite>
        <eav_mysql4_product_attribute_backend_tierprice>
            Module_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice
        </eav_mysql4_product_attribute_backend_tierprice>
      </rewrite>                            
</catalog_resource>

我使用的是magento 1.9。

请帮忙。

2 个答案:

答案 0 :(得分:0)

尝试将重写放在一行中,如下所示:

<catalog>
    <rewrite>
        <product_attribute_backend_tierprice>Module_Catalog_Model_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
    </rewrite>
</catalog>

<catalog_resource>
    <class>Mage_Catalog_Model_Resource</class>
    <rewrite>
        <eav_mysql4_product_attribute_backend_tierprice>Module_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice</eav_mysql4_product_attribute_backend_tierprice>
    </rewrite>                            
</catalog_resource>

Magento不喜欢配置文件中的换行符(至少在某些情况下)。

答案 1 :(得分:0)

最后解决了它

         <models>
                <catalog>
                    <rewrite>
                        <product_type_price>Module_Catalog_Model_Product_Type_Price</product_type_price>
                        <product_attribute_backend_tierprice>Module_Catalog_Model_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
                    </rewrite>
                </catalog> 
                <catalog_resource>
                    <class>Mage_Catalog_Model_Resource</class>
                    <deprecatedNode>catalog_resource_eav_mysql4</deprecatedNode>
                    <rewrite>
                        <product_attribute_backend_tierprice>Module_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
                    </rewrite>                            
                </catalog_resource>
         </models>