Расширяем Active Record в проекте на Yii Framework

Yii Framework предоставляет достаточно функциональный AR для взаимодействия с базой, однако очень часто не хватает некоторой «магиии» для более удобной работы.

В своих проектах я добавил несколько полезных функций в класс, скачать который можно ниже.

Функционал:

  • автоматическое обновление полей даты создания и последнего обновления записи в таблице
  • удобные функции для начала и завершения транзакции
  • трансляция сообщений об ошибке в контроллер
  • автоматическое создание slug записи и поля title

Код на GitHub
Установка:
Положить файл в components или любую другую директорию по желанию. Унаследовать свои модели от класса ActiveRecord.

  • 17.07.2011
  • Yii
  • Test

    Дружище, спасибо тебе за класс твой. Только исправь плиз, есть ошибочка у тебя. Вместо
    $this->{$this->updated} = new CDbExpression(‘NOW()’);надо написать $this->{$this->updatedField} = new CDbExpression(‘NOW()’);И с $this->created аналогично.

    • http://sergebezborodov.com Serge Bezborodov

      Спасибо за замечание, старая версия файла — залил новый

  • Алексей Бернацкий

    сам использовал похожую тактику, но вот создание слугов не додумался в нее закинуть

  • Алексей Бернацкий

    Сергей, вот у меня запара: при подключении этого класса АР получаю ошибку при сохранении
    Не определено свойство «Item.2011″.

    • http://sergebezborodov.com Serge Bezborodov

      Ошибка в файле есть, в beforeSave
      нужно прописать вида:
      $this->{$this->updatedField} = new CDbExpression(‘NOW()’);
      $this->{$this->createdField} = new CDbExpression(‘NOW()’);

      сегодня выложу на гитхаб исправленную и расширенную версию

      • Алексей Бернацкий

        спасибо. жду)
        если не затруднит, брось ссылку на usualdesigner@gmail.com как выложишь, а то я уже с time() в beforeSave начал мудрить)