如何覆盖Product / attribute / backend / Media

时间:2017-07-11 07:11:39

标签: magento

我有问题要覆盖Mage_Catalog_Model_Resource_Product_Attribute_Backend_Media

这是我做的:

config.xml

<?xml version="1.0"?>
<config>
  <modules>
    <Xx_Catalog>
      <version>0.1.0</version>
    </Xx_Catalog>
  </modules>
  <global>
    <models>
      <xx_catalog>
        <class>Xx_Catalog_Model</class>
      </xx_catalog>
      <catalog_resource>
        <rewrite>
          <product_attribute_backend_media>
        Xx_Catalog_Model_Resource_Product_Attribute_Backend_Media
          </product_attribute_backend_media>
        </rewrite>
      </catalog_resource>
    </models>
</global>

Media.php

class Xx_Catalog_Model_Resource_Product_Attribute_Backend_Media extends Mage_Catalog_Model_Resource_Product_Attribute_Backend_Media
{
  public function loadGallery($product, $object){
    echo "test";
    die();
  }
}

这是错误:

  

致命错误:在第51行的/magento/app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Media.php中的非对象上调用成员函数loadGallery()

你知道怎么改写这个班吗? 我有Magento 1.9.3.3

由于

---------成功----------

我必须将catalog_resource更改为catalog_resource_eav_mysql4

  <catalog_resource_eav_mysql4>
    <rewrite>
      <product_attribute_backend_media>Xx_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Media</product_attribute_backend_media>
    </rewrite>
  </catalog_resource_eav_mysql4>

1 个答案:

答案 0 :(得分:0)

config.xml 文件中,您必须从<resource_product_attribute_backend_media>更改为<product_attribute_backend_media>,如下所示:

<?xml version="1.0"?>
<config>
  <modules>
    <Xx_Catalog>
      <version>0.1.0</version>
    </Xx_Catalog>
  </modules>
  <global>
    <models>
      <xx_catalog>
        <class>Xx_Catalog_Model</class>
      </xx_catalog>
      <catalog_resource>
    <rewrite>
      <product_attribute_backend_media>
        Xx_Catalog_Model_Resource_Product_Attribute_Backend_Media
      </product_attribute_backend_media>
    </rewrite>
      </catalog_resource>
    </models>
</global>