同时在表中保存条目,在其他表中保存关联条目?

时间:2010-08-12 18:32:35

标签: symfony1

我有一个Product表,其中包含一个用于存储价格的字段。 每一次,这个价格都在变化,我需要保持古老的价值。所以我创建了一个名为History的表来存储产品ID,价格和更改日期。 我还在我的产品类中创建了这个方法来生成一个新条目:

public function updateHistory($modified) {      
    if(array_key_exists('price', $modified)) {
        $history = new History()
        $history = new History();$
        $history->setProductId($this->getId());
        $history->setPrice($modified['price']);
        $history->save()
    }
}

我从presave()方法中调用此方法

public function preSave($event) {
    $modified = $this->getModified();
    $this->updateHistory($modified);
}

它适用于已编辑的产品,但根本不适用于新产品,因为此时它没有id(历史表中的产品ID为null),如果我在postSave方法中使用updateHistory方法,$ modified为null;

那么如何在历史表中为新产品创建我的第一个条目?

感谢大家的回复和时间来帮助我!

(对不起我的英文)

1 个答案:

答案 0 :(得分:0)

如果您想轻松跟踪产品的历史记录,可以在schema.yml文件中使用“Versionable”行为。这样,你将拥有一个只涉及很少编码的历史。