我创建了一个观察者,将选定的多选属性值保存在一个单独的表中。只有在不存在的情况下,属性值才应该保存。这是我的代码
public function catalogProductSaveBefore(Varien_Event_Observer $observer)
{
$product=$observer->getProduct();
$_product=Mage::getModel('catalog/product')->load($product->getId());
$makeOptions=$_product->getAttributeText('make'); //array [0] => Audi [1] => BMW
$partsfindermodel=Mage::getModel('partsfinder/parts');
foreach($makeOptions as $makeOption)
{
if(!$partsfindermodel->getMake($makeOption))
{
$partsfindermodel->setMake($makeOption)->save();
}
}
}
只有数组中的最后一个元素才会保存在表格中。
如果不存在,如何保存值?
答案 0 :(得分:0)
我认为您需要考虑按属性获取模型 - 例如部件号 - 如果加载,您将拥有一个ID。如果没有条目,那么您将无法获得ID。因此,当涉及到保存时,它应该可以工作。
另一个问题是,您可以在数据库中添加包含更多字段的模型,但有时它们不起作用 - 除非您再次运行安装脚本。因此,您可能希望在删除表和core_resource中的条目后尝试此操作,以便设置模块。然后,在初始安装时,所有表都在后端进行,并与在线表单神奇地协同工作。