我是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 ''
此外,在尝试编辑产品时,不会在产品输入表单中设置值。
如何解决此问题?请你帮助我好吗? 提前谢谢。
答案 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将数据规范化为平面表的方法。
希望它有所帮助!