保存前と保存後のオブジェクトの違いをチェックすることにより、processForm関数内のアプリケーション内のオブジェクトの変更をログに記録します。それをデータベースのログテーブルに保持します。
sfGuardUserバックエンドには、生成された管理者を使用します。これにより、埋め込まれたグループまたは権限に加えられた変更が自動的に保存されます。
これらの変更をログに記録したいのですが、ログプロセスをどこに追加できますか?
保存前と保存後のオブジェクトの違いをチェックすることにより、processForm関数内のアプリケーション内のオブジェクトの変更をログに記録します。それをデータベースのログテーブルに保持します。
sfGuardUserバックエンドには、生成された管理者を使用します。これにより、埋め込まれたグループまたは権限に加えられた変更が自動的に保存されます。
これらの変更をログに記録したいのですが、ログプロセスをどこに追加できますか?
このような変更を処理するのに最適な場所は、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に切り替えました。