DbHelp.ru
Маленький Yii блог
Комментарии
Гость: cbd lotion cbd cream | cbd oil dogs | what does cbd oil do cbd cream
Гость: cbd dog treats cbd oil for dogs | where to buy cbd cream | cbd oil indiana christian book distributo...
Гость: acai berry wЕ‚aЕ›ciwoЕ›ci saroten 25 absturzsicherung gelГ¤nder vorschriften calciumgluconat gel nag...
Гость: real money casino hallmark casino online | casino games no download no registration | casinos near m...
Гость: free slot play vegas slots online | da vinci diamonds free online slots | hollywood casino free slot...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

AutoTimestampBehavior

Рубрика: Перевод Cookbook

Оцените эту статью:

Рейтинг: 0.00 (0)
13 июля. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rucookbookВы устали в ручную заполнять поля creted/modify в вашей таблице? Вам надоелио постоянно присваивать значения текущей даты при вставке/редактированию записи? Вы создали в моделе для этого отдельный метод? Забудьте! Теперь за вас всю работу сделает AutoTimestampBehavior. (прим. переводчика)

---

Такой behavior будет автоматически заполнять поля датой изменения и создания записи:

<?php
class AutoTimestampBehavior extends CActiveRecordBehavior {
 
    /**
    * Поле которое содержит дату создания записи
    */
    public $created = 'created';
    /**
    * Поле которое содержит дату редактирования записи
    */
    public $modified = 'modified';
 
 
    public function beforeValidate($on) {
        if ($this->Owner->isNewRecord)
            $this->Owner->{$this->created} = new CDbExpression('NOW()');
        else
            $this->Owner->{$this->modified} = new CDbExpression('NOW()');
 
        return true;   
    }
}

Изменения в моделе

Добавьте это в модель для использования:

public function behaviors(){
    return array(
        'AutoTimestampBehavior' => array(
            'class' => 'application.components.AutoTimestampBehavior',
            // вы можете указать дополнительные опции здесь
        )
    );
}



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Сегодня обнаружил что Sam Dark как и обещал перевел интерисующюю практически всех часть документации про RBAC. next Благодаря таким людям  - ... "Перевод : Аутентификация и авторизация (RBAC)"

  2. Авторский рецепт от pirrat и Sam Dark на популярную тему "DAO и модели"... next Читать "DAO и модели" [рус.] ... "DAO и модели"

  3. Хочу вас обрадовать выходном новой версии замечательного Yii фреймворка. Данный релиз был немного задержан посравнению с обычным графиком, но ... "Yii Framework 1.0.5"

andy_s

Было сказано: Понедельник, 13 Июль 2009

Люблю красивые решения :)
Но раз уж это перевод, то можно было бы и комменты в коде перевести ;)

[adm] zolter

Было сказано: Понедельник, 13 Июль 2009

сенк то я забыл :)

[guest] Гость

Было сказано: Вторник, 14 Июль 2009

А как же
"Тип столбца TIMESTAMP обеспечивает тип представления данных, который можно использовать для автоматической записи текущих даты и времени при выполнении операций INSERT или UPDATE. При наличии нескольких столбцов типа TIMESTAMP только первый из них обновляется автоматически."
??? разве это не более правильный путь ?

[guest] zolter

Было сказано: Вторник, 14 Июль 2009

Это я понимаю от самой базы?

[guest] hyzhak

Было сказано: Воскресенье, 30 Октябрь 2011

в том-то и прикол, что в MySQL только первое поле в таблице может автоматически проставлять текущее время автоматически.
если есть два поля
created (TIMESTAMP)
modified (TIMESTAMP)
то на автомате база поставит текущее время в поле created, а modified останется пустым

Оставить комментарий


Код:
Имя: