Php 为什么在保存产品自定义属性值时出现此错误?
我正试图用这些简单的代码来保存产品值以进行测试Php 为什么在保存产品自定义属性值时出现此错误?,php,magento,attributes,Php,Magento,Attributes,我正试图用这些简单的代码来保存产品值以进行测试 $p=Mage::getModel(“目录/产品”); $p->setData(“sku”、“真实值sku111”); $p->setData(“名称”、“真实值名称”); $p->setData(“自定义属性”、“真实值”); $p->save(); 我通过管理面板创建了一个custom\u attr属性,上面的代码给出了一个错误 处理您的请求时出错 错误是: a:5:{i:0;s:476:“SQLSTATE[23000]:完整性约束冲突:14
$p=Mage::getModel(“目录/产品”);
$p->setData(“sku”、“真实值sku111”);
$p->setData(“名称”、“真实值名称”);
$p->setData(“自定义属性”、“真实值”);
$p->save();
我通过管理面板创建了一个custom\u attr
属性,上面的代码给出了一个错误
处理您的请求时出错
错误是:
a:5:{i:0;s:476:“SQLSTATE[23000]:完整性约束冲突:1452
无法添加或更新子行:外键约束失败
(magento\u oguz
目录产品\u实体
,约束
FK\u CAT\u PRD\u ENTT\u ATTR\u SET\u ID\u EAV\u ATTR\u SET\u ATTR\u SET\u ID
外键
(attribute\u set\u id
)引用eav\u attribute\u set
(属性集\u id
),查询为:插入到
catalog\u product\u entity
(entity\u type\u id
,sku
,在
创建,
更新了值(?,'2015-10-06 20:34:57','2015-10-06
20:34:57“,”i:1;s:1940:“#0
为什么会出现此错误?如何保存此属性的值?它似乎不是来自您的自定义属性
当您执行这段代码时,您基本上创建了一个新产品。
创建产品时,Magento需要属性集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');
我做了一些复制编辑和格式更改,希望能帮助您有更好的机会在这里得到一个好的答案。(顺便说一下,欢迎使用StackOverflow。)您的新属性是否分配给属性集?分配给默认属性集。