2011-08-09 5 views
0

私のアプリで行われたすべての主要な行動をデータベーステーブル(logs)にログインする必要があります。たとえば、アクションはlogin/logout, view, add, update,などとなります。したがって、誰かがログインしたり、特定のレコードを表示するたびに、データベーステーブルに記録されます。CakePHPでデータベースへの拡張ログ記録を行うには?

可能な限り簡単な方法で、すべてのコントローラからこのメソッドを呼び出すことをお勧めします。これは、すべてのコントローラで、場所の周りに点在するlogIt($action, $object, $note)のようなものです。それはまた、合理的に効率的でなければならない。

ご意見はありますか?そのようなことをする最善の方法は何でしょうか?

ありがとうございます。 CakePHPの初心者からのご意見。

答えて

3

$this->log($data,'log_file');はケーキ(モデル、ビュー、コントローラ)のどこにでも使用できます。データはtmp/logs/log_file.logに記録されます

DBに入る必要がある場合は、app_controllerにログメソッドを設定して、モデルを自分でロードする必要があります。また、必要なコントローラーにログインしてください。

+0

DBに入る必要があります。あなたのヒントは、私が望んでいたものよりも少し一般的なもの(例えば、欠けているコード)でしたが、私はそれらをフォローして何かを並べ替えました。私はapp_controllerにlogメソッドを追加し、他のコントローラから呼び出すことはかなり簡単でした。 〜 – markok

0

個人的には、Anh Phamsの答えはもっと「ケーキ」でスケーラブルですが、リアルタイムで更新する必要がある場合は、DBに入れなければなりません。

そうしないと、最良の方法はcustom componentになります。これは、あなたのコントローラにあなたが合っているかのようにアタッチすることができます。もちろん、AppControllerでは、 'ログ'モデルを読み込んで呼び出すときにレコードを保存する簡単なメソッドを作成することができます。

関連する問題