Yii:如何管理模型的更改日志?

时间:2013-05-12 17:12:18

标签: forms yii revision-history

CREATE TABLE `personchanges` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `person` int(11) unsigned NOT NULL,
  `msg` mediumtext NOT NULL,
  PRIMARY KEY (`id`),
  KEY `person` (`person`),
  KEY `fk_personchanges_1` (`person`),
  CONSTRAINT `fk_personchanges_1` FOREIGN KEY (`person`) REFERENCES `person` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB COMMENT='changelog'

(还有表person,但其内容与我的问题无关,只知道它有id字段。)

person的编辑表单中,我想显示一个(总是最初为空的)textarea。

如果在保存(创建或更新)之前,用户在此textarea中键入文本,则该文本应保存到personchanges表中。

当查看(不编辑)该人(来自person表)以及其他数据时,应显示msg的最后一行(具有最高idpersonchanges行对于给定的人ID。

我的问题:我应该在哪里实现显示和编辑msg textarea?它应该在模型中(类Person),在表单中,何处?

1 个答案:

答案 0 :(得分:0)

有一个扩展程序可以执行您想要的内容:Yii model Versioning

  

SAModelVersioning是一种提供版本控制的Yii行为   任何ActiveRecord对象的功能。

因此,您可以跟踪他对模型所做的更改。该扩展还提供了一些方法来获取最新版本,比较版本,还原到另一个版本,...