当我尝试从管理员添加特价时,Magento错误

时间:2014-05-19 19:40:39

标签: magento magento-1.8

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

这是magento的本地副本,但我不想在现场网站上重新创建整个内容。我可以采取哪些措施来解决这个问题?

5 个答案:

答案 0 :(得分:11)

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

我已经安装了一个模块,它将数据库中的“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%'
);

注意:用您的magento DB替换<database-name>

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

catalog/product_attribute_backend_startdate_specialprice

因此,请将上述条目更改为

catalog/product_attribute_backend_startdate

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

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

干杯, 函数naveed。

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

答案 1 :(得分:6)

打开phpMyadmin

来自你的magento db

选择eav_attribute

其中backend_model为:

的行

&#39;目录/ product_attribute_backend_startdate_specialprice&#39;

在phpMyadmin的SQL选项卡中尝试:

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

将后端模型更改为:

&#39; EAV / entity_attribute_backend_datetime&#39;

答案 2 :(得分:4)

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

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

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

答案 3 :(得分:1)

defautl Magento中的后端模型是

catalog/product_attribute_backend_startdate

位于

应用\代码\核心\法师\目录\模型\产品\属性\后端\ Startdate.php

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

catalog/product_attribute_backend_startdate_specialprice

然后你需要创建像这样的路径

<强> \目录\模型\产品\属性\后端\开始日期\ Specialprice.php

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

答案 4 :(得分:0)

运行以下查询:

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