【问题标题】:Magento error when I try to add special price from admin当我尝试从管理员添加特价时,Magento 错误
【发布时间】:2014-07-07 21:27:17
【问题描述】:

我得到的错误是: 指定的后端模型无效:目录/product_attribute_backend_startdate_specialprice

这是 magento 的本地副本,但我不想在现场网站上重新创建整个内容。有什么想法可以解决这个问题吗?

【问题讨论】:

  • 你解决过这个问题吗?

标签: magento magento-1.8


【解决方案1】:

上述解决方案不适用于我的情况,因为我没有开发任何模块,因此在上述路径中找不到任何名为“specialprice”的文件。

我安装了一个模块,它将数据库中的“特价”后端路径更改为catalog/product_attribute_backend_startdate_specialprice

如果你遇到和我一样的问题,这里是解决方案:

运行数据库查询以检查 specialprice 属性的值,即

SELECT * FROM `<database-name>`.`eav_attribute`
WHERE (
`attribute_id` LIKE '%special_price%'
OR `entity_type_id` LIKE '%special_price%'
OR `attribute_code` LIKE '%special_special_price%'
OR `attribute_model` LIKE '%special_price%'
OR `backend_model` LIKE '%special_price%'
OR `backend_type` LIKE '%special_price%'
OR `backend_table` LIKE '%special_price%'
OR `frontend_model` LIKE '%special_price%'
OR `frontend_input` LIKE '%special_price%'
OR `frontend_label` LIKE '%special_price%'
OR `frontend_class` LIKE '%special_price%'
OR `source_model` LIKE '%special_price%'
OR `is_required` LIKE '%special_price%'
OR `is_user_defined` LIKE '%special_price%'
OR `default_value` LIKE '%special_price%'
OR `is_unique` LIKE '%special_price%'
OR `note` LIKE '%special_price%'
);

注意:&lt;database-name&gt; 替换为您的magento DB。

您将在数据库中找到三行。导航到名为“Backend_model”的列,然后您将看到其中一个条目写为​​p>

catalog/product_attribute_backend_startdate_specialprice

所以,把上面的条目改为

catalog/product_attribute_backend_startdate

保存数据库,然后在magento前端/后端刷新页面(创建并保存新产品)。

我希望一切正常。祝你好运!

干杯, 纳威德。

PS:感谢所有帮助他人学习的人。

【讨论】:

    【解决方案2】:

    运行以下查询:

    UPDATE eav_attribute 
        SET backend_model = 'eav/entity_attribute_backend_datetime' 
        WHERE backend_model = 'catalog/product_attribute_backend_startdate_specialprice';
    

    【讨论】:

    • 你能在你的回答中解释这个查询的作用吗?答案越详细越好;)
    【解决方案3】:

    虽然其他答案给出了解决方法(在eav_attribute 表中将后端模型catalog/product_attribute_backend_startdate_specialprice 替换为catalog/product_attribute_backend_startdate),但尚未有人解释为什么会发生这种情况。

    后端模型catalog/product_attribute_backend_startdate_specialprice 是在 Magento 1.9 中引入的,因此当您在已更新到 1.9 的数据库上运行 Magento 1.8 或更早版本时会出现此错误。

    可能您更新了 Magento,然后将代码恢复到以前的版本。不幸的是,此时数据库的更新脚本已经运行并且没有回滚机制。

    【讨论】:

      【解决方案4】:

      打开phpMyadmin

      来自您的 magento 数据库

      选择eav_attribute

      backend_model 所在行的位置:

      '目录/product_attribute_backend_startdate_specialprice'

      在 phpMyadmin 的 SQL 选项卡中试试这个:

      SELECT * FROM `magentodbname`.`eav_attribute` WHERE `backend_model` = 'catalog/product_attribute_backend_startdate_specialprice'
      

      将后端模型更改为:

      'eav/entity_attribute_backend_datetime'

      【讨论】:

      • 它在我的情况下通过这些步骤工作。为相同点赞。你能解释一下导致这个问题的原因吗?
      【解决方案5】:

      默认 Magento 中的后端模型是

      catalog/product_attribute_backend_startdate

      位于

      app\code\core\Mage\Catalog\Model\Product\Attribute\Backend\Startdate.php

      如果您正在使用自定义模块并且指定的后端模型是

      catalog/product_attribute_backend_startdate_specialprice
      

      那么你需要创建类似这样的路径

      \Catalog\Model\Product\Attribute\Backend\Startdate\Specialprice.php

      根据需要更改本地/社区路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-01
        • 1970-01-01
        • 2011-11-21
        • 2017-04-15
        • 2013-07-02
        • 1970-01-01
        • 2014-07-06
        • 1970-01-01
        相关资源
        最近更新 更多