Yii: Как управлять журналом изменений для модели?

CREATE TABLE "персонажи" (
  `id` int(10) без знака NOT NULL AUTO_INCREMENT,
  `person` int(11) без знака NOT NULL,
  `msg` средний текст NOT NULL,
  ПЕРВИЧНЫЙ КЛЮЧ (`id`),
  KEY `персона` (` персона`),
  KEY `fk_personchanges_1` (`person`),
  CONSTRAINT `fk_personchanges_1` FOREIGN KEY (`person`) ССЫЛКИ `person` (` id`) НА УДАЛЕННОМ КАСКАДЕ НА ОБНОВЛЕНИИ КАСКАДА) ДВИГАТЕЛЬ = КОММЕНТАРИЙ InnoDB ='список изменений'

(Есть также таблица person, но его содержание не имеет значения для моего вопроса, просто знайте, что оно имеет id поле.)

В форме редактирования для person Я хочу отобразить (всегда изначально пустое) текстовое поле.

Если перед сохранением (созданием или обновлением) пользователь вводит текст в этой области текста, этот текст должен быть сохранен в personchanges Таблица.

При просмотре (не редактировании) человека (из person таблица) среди других данных должны отображаться msg от последнего (имея самый высокий id) personchanges строка для данного человека id.

Мой вопрос: где я должен реализовать показ и редактирование msg текстовое поле? Должно ли это быть в модели (класс Person), в форме, где?

1 ответ

Существует расширение, выполняющее то, что вы хотите: Yii модель Versioning

SAModelVersioning - это поведение Yii, которое предоставляет возможности управления версиями для любого объекта ActiveRecord.

Таким образом, вы можете отслеживать все изменения на вашей модели. Расширение также предоставляет несколько методов для получения последней версии, сравнения версий, возврата к другой версии,...

Другие вопросы по тегам