2010-11-22 24 views
0

私のプロジェクトには、いくつかの異なるモデルに対するすべての変更を追跡するログ機能があります。ユーザーや管理者がアカウントを編集するたびに、または、ユーザーが新しいレコードを作成するとき。これらのアクションはすべてログテーブルに記録されます。呼び出しアクションのモデルとアクション名を取得する方法

新しいレコードを保存するために呼び出されたときに、beforeSaveアクションでモデル名とアクション名をログ・モデルで取得するようにしたいとします。私はこのように保存すること、コントローラのアクションから、今それを呼び出す:

$this->Log->save(array(
    'user'=>$this->Auth->user('id'), 
    'model'=>$this->name, 
    'action'=>$this->action)); 

私はそれを短縮することができるのが大好きだ:

$this->Log->save(); 

答えて

1

アルカテルの素晴らしいが見つかりました。それは魅力的なように働いています。ホイールを再構築する必要はありません。

0

私は私が書くことのいずれかに傾斜すると思いますそのような

$this->Log->save($uma_array) 0123を呼び出し

saveLog()としてapp_controllerのメソッド

または既存の

$this->Log->save($this)

とメソッド内のデータをuntanglingを行うことによって構築簡素化します。

EDIT:もちろん

、これを行うための最善の方法は、teknoidのパターンを使用して観察可能な行動を使用することです:http://nuts-and-bolts-of-cakephp.com/2009/08/10/observer-pattern-the-cakephp-way/ それは実装することは難しいことではありません。

+0

ログモデルにsave()メソッドを記述することをお勧めします。 – bancer

関連する問題