複数のコントローラーでイベントをログに記録し、それらを「アクション」データベースに保存したいと考えています。保存後にそのアクション オブジェクトの ID を取得する必要があるため、アクションをクラス/コントローラーとして持つ必要があります。
データベースに新しいアクションを追加するために任意のコントローラーでメソッドを実行できるようにするには、これを行う最善の方法は何ですか?
$this->Action->log($array)
;
どうもありがとう
複数のコントローラーでイベントをログに記録し、それらを「アクション」データベースに保存したいと考えています。保存後にそのアクション オブジェクトの ID を取得する必要があるため、アクションをクラス/コントローラーとして持つ必要があります。
データベースに新しいアクションを追加するために任意のコントローラーでメソッドを実行できるようにするには、これを行う最善の方法は何ですか?
$this->Action->log($array)
;
どうもありがとう
そのためにはコンポーネントを使用する必要があります。コンポーネントは、任意のコントローラーで使用できるオブジェクトです (コントローラーの$components
プロパティまたは AppController のプロパティに含める限り)。
たとえばAuth
、Cake の経験がある場合、それはコンポーネントであり、そのメソッドは任意のコントローラーから呼び出すことができます。
コンポーネントの詳細はこちら: http://book.cakephp.org/2.0/en/controllers/components.html
さらにヘルプが必要な場合は、お気軽に自分でコンポーネントを作成してみて、問題があれば戻ってきてください。