CakePHP でコントローラの関数やコントローラ内で定義したモデルや変数を扱いたい場合があります。
その際はコンポーネントで initialize() メソッドを実行して $controller を呼び出せば良いです。
例えばコンポーネント内でリダイレクトをしたい場合は以下のようにします。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php class LoginComponent extends Object { function initialize(&$controller) { $this->controller =& $controller; } function login($value) { $this->controller->redirect('success'); } } |
このような感じでモデルにもアクセスすることができます。
1 2 3 4 5 6 7 8 9 10 11 12 | <?php class LoginComponent extends Object { function initialize(&$controller) { $this->controller =& $controller; } function login($params) { $this->controller->Member->loginAuth($params); } } |
以下のページがそのものズバリで参考になりました。
独自のコンポーネントを作成する :: コンポーネント :: CakePHPによる開発 :: マニュアル :: 1.2コレクション :: The Cookbook
コメント