【问题标题】:Why i get this error while saving a product custom attribute value?为什么在保存产品自定义属性值时出现此错误?
【发布时间】:2015-10-06 20:46:58
【问题描述】:

我正在尝试使用这些简单的代码来保存产品值以进行测试。

 $p = Mage::getModel("catalog/product");
       $p->setData("sku","real val sku111");
       $p->setData("name","real val name");
       $p->setData("custom_attr","real val");
       $p->save();

我通过管理面板创建了一个custom_attr 属性,上面的代码给出了一个错误。

处理您的请求时出错

错误是:

a:5:{i:0;s:476:"SQLSTATE[23000]: 完整性约束违规:1452 无法添加或更新子行:外键约束失败 (magento_oguz.catalog_product_entity, 约束 FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID外键 (attribute_set_id) 参考资料eav_attribute_set (attribute_set_id)),查询是:INSERT INTO catalog_product_entity (entity_type_id, sku, created_at, updated_at) 值 (?, ?, '2015-10-06 20:34:57', '2015-10-06 20:34:57')";i:1;s:1940:"#0

为什么会出现此错误?如何保存此属性的值?

【问题讨论】:

  • 我进行了一些复制编辑和格式更改,希望能帮助您有更好的机会在这里得到一个好的答案。 (顺便说一下,欢迎使用 StackOverflow。)
  • 您的新属性是否已分配给属性集?
  • 分配给默认属性集。

标签: php magento attributes


【解决方案1】:

它似乎不是来自你的自定义属性。

当您执行那段代码时,您基本上创建了一个新产品。 Magento 在创建产品时需要一个 attribute_set_id。

这里的这段代码可能会执行而不会出错:

$p = Mage::getModel("catalog/product");
$p->setData("sku","real val sku111");
$p->setData("name","real val name");
$p->setData("custom_attr","real val");
// Assuming "Default" attribute set id is 9
$p->setAttributeSetId(9);
$p->save();

如果您想编辑现有产品,则必须在任何 setData 调用之前使用以下内容加载 id:

$_product = Mage::getModel('catalog/product')->loadByAttribute('sku','real val sku111');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多