【发布时间】:2014-07-07 21:27:17
【问题描述】:
我得到的错误是: 指定的后端模型无效:目录/product_attribute_backend_startdate_specialprice
这是 magento 的本地副本,但我不想在现场网站上重新创建整个内容。有什么想法可以解决这个问题吗?
【问题讨论】:
-
你解决过这个问题吗?
标签: magento magento-1.8
我得到的错误是: 指定的后端模型无效:目录/product_attribute_backend_startdate_specialprice
这是 magento 的本地副本,但我不想在现场网站上重新创建整个内容。有什么想法可以解决这个问题吗?
【问题讨论】:
标签: magento magento-1.8
上述解决方案不适用于我的情况,因为我没有开发任何模块,因此在上述路径中找不到任何名为“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%'
);
注意:将<database-name> 替换为您的magento DB。
您将在数据库中找到三行。导航到名为“Backend_model”的列,然后您将看到其中一个条目写为p>
catalog/product_attribute_backend_startdate_specialprice
所以,把上面的条目改为
catalog/product_attribute_backend_startdate
保存数据库,然后在magento前端/后端刷新页面(创建并保存新产品)。
我希望一切正常。祝你好运!
干杯, 纳威德。
PS:感谢所有帮助他人学习的人。
【讨论】:
运行以下查询:
UPDATE eav_attribute
SET backend_model = 'eav/entity_attribute_backend_datetime'
WHERE backend_model = 'catalog/product_attribute_backend_startdate_specialprice';
【讨论】:
虽然其他答案给出了解决方法(在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,然后将代码恢复到以前的版本。不幸的是,此时数据库的更新脚本已经运行并且没有回滚机制。
【讨论】:
打开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'
【讨论】:
默认 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
根据需要更改本地/社区路径。
【讨论】: