0

通过检查对象在保存前后的差异,我在 processForm 函数中记录应用程序中对象的更改。我将其保存到数据库中的日志表中。

对于 sfGuardUser 后端,我使用生成的管理员,它会自动保存对嵌入式组或权限所做的更改。

我想记录这些更改 - 但我可以在哪里添加我的日志进程?

4

1 回答 1

1

好吧,我认为处理此类更改的最佳位置是在模型中而不是在 processForm 中。这是行为的完美工作。

有一种称为versionable的行为,它与您所做的完全一样:对模型的每个更改进行历史记录,您只需在 schema.yml 中定义它:

BlogPost:
  _propel_behaviors:
    versionable:
      log_created_at: true
      log_created_by: true
      log_comment: true
  columns:
    title: string(255)
    body: clob

所以也许你可以从这种行为中获得灵感来创造你自己的。然后你只需要修改 sfGuard 的schema.yml,比如:

sfGuardGroupPermission:
  _attributes:    { phpName: sfGuardGroupPermission }
  _propel_behaviors:
    versionable: { log_created_at: true, log_created_by: true, log_comment: true }

编辑: 切换到推进。

于 2012-05-03T07:57:46.157 回答