【问题标题】:magento-Model overridingmagento-模型覆盖
【发布时间】:2013-01-26 05:50:30
【问题描述】:

我正在尝试向层级定价添加一个新属性,当我尝试覆盖 tierprice 类时,当我尝试保存项目时出现“指定的后端模型无效:目录/product_attribute_backend_tierprice”错误,而在前端我无法查看任何内容项目。

请帮帮我。

在我的 config.xml 中,我将类定义为


<modules>
   <Mypackage_Catalog>
     <version>0.1.0</version>
   </Mypackage_Catalog>
</modules>


<global>
    <models>
        <catalog>
            <rewrite>
                <product_type_price>Mypackage_Catalog_Model_Product_Type_Price</product_type_price>
                <product_attribute_backend_tierprice>Mypackage_Catalog_Model_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
            </rewrite>
        </catalog>                          
        <catalog_resource_eav_mysql4>
            <rewrite>
                <product_attribute_backend_tierprice>Mypackage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice</product_attribute_backend_tierprice>
            </rewrite>                          
        </catalog_resource_eav_mysql4>
    </models>
</global>


我的文件夹结构看起来像

app\code\local\Mypackage\Catalog\Model\Resource\Eav\Mysql4\Product\Attribute\Backend\Tierprice.php

【问题讨论】:

    标签: magento-1.4 magento


    【解决方案1】:

    对我来说,您似乎在配置 xml 中覆盖了 3 个类,但您的文件夹结构中只存在一个。我尝试了您在此处描述的模块(但没有对核心文件进行修改,只是复制了它们并更改了类定义)并得到了相同的错误。在 system.log 中,此错误如下所示:

    Failed opening 'Mypackage\Catalog\Model\Product\Attribute\Backend\Tierprice.php' for inclusion 
    

    在您的文件夹结构中,您将需要以下文件(除了现有文件):

    app\code\local\Mypackage\Catalog\Model\Product\Attribute\Backend\Tierprice.php
    app\code\local\Mypackage\Catalog\Model\Product\Type\Price.php
    

    【讨论】:

    • 它们在资源文件夹中。
    • 您的意思是您的本地文件夹结构中的所有 3 个文件都正确定位(一个资源模型和 2 个模型)?
    • 编辑了答案,请。看截图。如果结构和类名相同,则不应再出现此错误。
    • 谢谢。我把类放在错误的文件夹 app\code\local\Mypackage\Catalog\Model\Product\Attribute\Backend\Tierprice.php app\code\local\Mypackage\Catalog\Model\Resource\Eav\Mysql4\Product\ Attribute\Backend\Tierprice.php 交换这些文件夹中的两个文件就可以了
    【解决方案2】:

    据我所知,您的文件 tierprice.php 应该大写,如果不这样做,请发布您的 Tierprice.php 文件

    【讨论】:

    • 对不起,只是打字错误。它是大写的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2011-03-13
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 2011-06-26
    相关资源
    最近更新 更多