DbHelp.ru
Маленький Yii блог
Комментарии
Гость: wh0cd639169 [url=http://lisinopril20mg.us.com/]lisinopril[/url]
Гость: One of the most interesting advances in the carpentry and deck construction industries over the year...
Гость: Офигеть просто! Все, блин, всё знают, кроме меня Мн...
Гость: wh0cd96231 [url=http://bupropion.live/]bupropion[/url] [url=http://inderal.world/]inderal[/url] [url...
Гость: wh0cd271796 [url=http://viagra50mg.us.com/]viagra 50mg[/url] [url=http://buyrimonabant.us.org/]rimon...



Сервер 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. Раздел "Документации"  был пополнен интересной заметкой. Пользователь Sebastián Thierer предоставил так называемую "шпаргалку" по часто используемым методам и приёмам ... "Yii Шпаргалка"

  2. Эта статья устарела т.к. была написана для yii версии 1.0.х; Если вы используете более новую версию - у вас могут ... "Урок 6 : Регистрация и авторизация. Часть 1"

  3. Надо было мне поэксперементировать с кешем в Yii. Нашел справку как что подключать и сразу приступил к делу. Работал ... "MemCache и ZendServer"

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 останется пустым

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


Код:
Имя: