2015-10-06 69 views
0

我试图用这些简单的代码来保存产品值来测试。为什么在保存产品自定义属性值时出现此错误?

$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属性和上面的代码是给一个错误。

已经有一个错误处理请求

错误是:

一个:5:{I:0; S:476:“SQLSTATE [23000]:完整性约束冲突:1452 不能添加或更新子行:外键约束失败 (magento_oguzcatalog_product_entity,约束 FK_CAT_PRD_ENTT_ATTR_SET_ID_EAV_ATTR_SET_ATTR_SET_ID FOREIGN KEY (attribute_set_id)参考文献eav_attribute_setattribute_set_id)),查询是:INSERT INTO catalog_product_entityentity_type_idskucreated_atupdated_at)VALUES(,, '2015年10月6日20时34分57秒',“2015-10? -06 20:34:57')“; i:1; s:1940:”#0

为什么我得到这个错误?我怎样才能保存这个属性的值?

+0

我做了一些副本编辑和格式更改,希望能帮助您在这里获得更好的答案。 (顺便说一下欢迎使用StackOverflow。) – sideshowbarker

+0

是分配给属性集的新属性吗? – Rabea

+0

已分配给默认属性集。 –

回答

0

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

当您执行这段代码时,您基本上会创建一个新产品。 当您创建产品时,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'); 
相关问题