У меня есть таблица Product с полем для хранения цены.
Каждый раз, когда эта цена менялась, мне нужно сохранять древнюю ценность. Поэтому я создал таблицу под названием History для хранения идентификатора продукта, цены и даты изменения.
Я также создал этот метод в своем классе продукта для создания новой записи:
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);
}
Он отлично работает для отредактированного продукта, но совсем не для нового продукта, потому что у него нет идентификатора в настоящее время (идентификатор продукта равен нулю в таблице истории), и если я использую метод updateHistory в методе postSave, $ Modified равен нулю;
Так, как я могу создать свою первую запись в таблице истории для нового продукта?
Спасибо всем за ваш ответ и время, проведенное, чтобы помочь мне!
(простите за мой английский)