Yii: автоматизировать временные метки в моделях ActiveRecord.Это ошибка? - PullRequest
0 голосов
/ 27 октября 2011

Я следовал этой статье , чтобы автоматизировать временные метки в моделях ActiveRecord. Измененные и созданные значения правильно сохраняются в базе данных. Но когда я пытаюсь получить измененное и созданное время, что-то не так. Это ошибка?

    [_attributes:CActiveRecord:private] => Array
    (
        [id] => 2956
        [title] => saved into database      
        [created] => 2011-10-26 16:16:30
        [modified] => CDbExpression Object
            (
                [expression] => NOW()
                [params] => Array
                    (
                    )
                [_e:CComponent:private] => 
                [_m:CComponent:private] => 
            )
    )

Исправлена ​​ошибка:

    $info->hits++;
    **$modified = $info->modified;
    $info->save(); //This will change modified to Now()
    $info->modified = $modified;**

1 Ответ

0 голосов
/ 29 октября 2011

Полагаю, вы имеете в виду, что пытаетесь получить значение модификации в том же запросе, в котором оно сохраняется?

В этом случае, поскольку вы (возможно) устанавливаете $ this- >ified = new CDbExpression ('NOW ()') в событии beforeSave, тогда это значение в измененном поле. Чтобы получить фактическую дату, вам нужно будет извлечь ее из базы данных, используя findByPk (или какой-нибудь метод find).

Обычно это значение не требуется в том же запросе при сохранении модели, но если это так, вы можете просто использовать time (), я думаю.

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