2012-05-03 56 views
0

我通過檢查 保存之前和之後的對象差異來記錄我的應用程序中的對象在processForm函數中的更改。我堅持到我的數據庫中的日誌表。Symfony - sfGuardUser - 如何記錄組或權限更改?

對於sfGuardUser後端,我使用生成的管理員 ,它自動保存對嵌入組 或權限所做的更改。

我想記錄這些更改 - 但我可以在哪裏添加我的日誌過程?

+0

你使用的是原則還是推進? – j0k

+0

Symfony 1.4 with Propel –

+0

好的我已經更新了我的答案 – j0k

回答

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 

因此,也許你可以得到的啓示this behavior來創建你自己的。然後你只需修改sfGuard的schema.yml,如:

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

編輯: 切換到推進。