0

我创建了一个观察者将选定的多选属性值保存在单独的表中。属性值仅在不存在时才应保存。这是我的代码

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();
        }
    }
}

只有数组中的最后一个元素保存在表中。

如果不存在如何保存值?

4

1 回答 1

0

我认为您需要考虑通过属性获取模型 - 例如部件号 - 如果加载,您将拥有一个 ID。如果还没有条目,那么您将不会获得 ID。因此,在保存时,它应该起作用。

另一个问题是您可以在数据库中添加更多字段的模型,但有时它们不起作用 - 除非您再次运行安装脚本。因此,您可能想在删除表和 core_resource 中的条目以设置模块后尝试此操作。然后,在初始安装时,所有表格都在后端制作,并神奇地与在线表格一起正常工作。

于 2012-08-22T13:57:06.697 回答