Сохранить запись в таблице и связанную запись в другой одновременно? - PullRequest
0 голосов
/ 12 августа 2010

У меня есть таблица 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 равен нулю;

Так, как я могу создать свою первую запись в таблице истории для нового продукта?

Спасибо всем за ваш ответ и время, проведенное, чтобы помочь мне!

(простите за мой английский)

1 Ответ

0 голосов
/ 13 августа 2010

Если вы хотите легко отслеживать историю продукта, вы можете использовать поведение « Versionable » в файле schema.yml. Таким образом, у вас будет история с очень небольшим количеством кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...