自定义产品属性的值不存储在数据库表中

时间:2014-06-07 05:46:51

标签: magento select attributes save box

我是Magento的新手,我使用的是1.7.2。我添加了一个名为product type name的产品属性。它是一个下拉字段,值从另一个名为product_type_name的自定义表中填充。到目前为止我已经成功完成了。现在我想在添加产品时将产品类型名称的值存储到DB表中。为此,我在product_attrb_type_name表中添加了一列catalog_product_flat_1(属性代码)。 现在,在尝试添加产品时,它显示以下错误  SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' 此外,在尝试编辑产品时,不会在产品输入表单中设置值。

如何解决此问题?请你帮助我好吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

Magento使用EAV表结构,因此一旦添加了属性,它们就会存储在具有特定实体类型的eav_attribute表中(产品为4)。

现在加载产品对象时,请说

$product = Mage::getModel('catalog/product')->load({{entity_id}}),其中entity_id是您的产品ID,

您可以在此对象上使用get和set函数来设置特定产品实例的值,即

$product->setProductTypeName('someValue'); in your case a a dropdown ,so
$product->setProductTypeName(attributeId);
$product->save();

并通过

获取
$product->getProductTypeName();

您不必在catalog_product_flat表中插入,这是Magento将数据规范化为平面表的方法。

希望它有所帮助!