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.
Таким образом, вы можете отслеживать все изменения на вашей модели. Расширение также предоставляет несколько методов для получения последней версии, сравнения версий, возврата к другой версии,...