DbHelp.ru
Маленький Yii блог
Комментарии
DeD: Запрацювало тільки після заміни if (isset($_GET['root'])) на if...
Denis: Если что- можете поюзать полный код уроков: https://github.com/d...
Гость: www.youtube.com/watch?v=vZqNhOsaHRU - ролик по проекту DruYiid
Mj: Мдааа так было интересно, ех... Но лучше поздно чем нико...
Mj: Добавте оповещание по email



Сервер 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. Буквально пару дней назад закончилась вторая Международная конференция "FOSS Sea" в Одессе. Как вы понимаете я являлся одним из ... "FOSS Sea 2009"

  2. Давайте сегодня поговорим что же такое “контроллер” и для чего он используется в приложениях на базе MVC next В уроке ... "Шаг 5 : Контроллер"

  3. На днях русскоязычное сообщество порадовало нас свеженьким переводом руководства по созданию блога. В черновом виде был представлен перевод раздела ... "Перевод : Начальное прототипирование"

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

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


Код:
Имя: