DbHelp.ru
Маленький Yii блог
Комментарии
Гость: wh0cd3078423 [url=http://cialiscost24.us.org]buy cialis online without prescription[/url] Cialis For...
Гость: http://u.to/oTJNEA - Smoking Lock - натуральный нативный комплекс, спо...
Гость: wh0cd2594827 [url=http://alli.us.com]alli orlistat 60mg[/url] Cheap Alli http://alli.us.com [url=htt...
Гость: wh0cd2594827 [url=http://buytadalissx.us]generic tadalis[/url] tadalis sx without prescription http:...
Гость: wh0cd2594827 [url=http://proscar365.us.com]proscar 1mg[/url] Order Proscar http://proscar365.us.com



Сервер 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. Во всех приложениях большую часть внимания мы с вами (программисты) должны уделять именно безопасности. Мы с вами живем в ... "Перевод : Безопасность"

  2. Вас смущает капча на вашем сайте? Так давайте сделаем её сложнее... В этом уроке мы поговорим про интеграцию с ... "Усложняем стандартную капчу, при помощи reCaptcha"

  3. Поздравляю всех с "кругленькой" версией любимого фреймворка! В этом выпуске было исправлено около тридцати ошибок и произведены незначительные улучшения существующих функций. next К ... "Поздравляю всех с выходом версии 1.0.10!"

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

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


Код:
Имя: