2015-10-06 66 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'); 
相關問題