我有一个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;
那么如何在历史表中为新产品创建我的第一个条目?
感谢大家的回复和时间来帮助我!
(对不起我的英文)