0

保存前と保存後のオブジェクトの違いをチェックすることにより、processForm関数内のアプリケーション内のオブジェクトの変更をログに記録します。それをデータベースのログテーブルに保持します。

sfGuardUserバックエンドには、生成された管理者を使用します。これにより、埋め込まれたグループまたは権限に加えられた変更が自動的に保存されます。

これらの変更をログに記録したいのですが、ログプロセスをどこに追加できますか?

4

1 に答える 1

1

このような変更を処理するのに最適な場所は、processForm ではなくモデルであると思います。これは振る舞いの完璧な仕事です。

モデルの各変更を履歴化し、 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 }

編集: Propelに切り替えました。

于 2012-05-03T07:57:46.157 に答える