edo1z blog

プログラミングなどに関するブログです

cakePHP プラグイン内でモデルを使う

プラグインを追加して、プラグインのコントローラーから、プラグインではないモデルにアクセスする方法がよく分からない。 というか、User認証に関するロジックをプラグイン化しつつ、モデルは既存のUserモデルを使おうとするときに、プラグインのユーザ登録画面で、Userモデルに記載しているバリデーションがなぜか中途半端に機能しない。notemptyは機能するが、それ以外のvalidationロジックがまったくきかない。なぜだ??確かにプラグインの各種連動の仕組みをしっかり分かっていない。だから変なことになっているのかもしれない。

プラグイン内のコントローラー名は、UserControllerにしていたのだが、これだとどうもうまくいかないらしい。 HogeUserControllerにして、public $uses = array('User);としつつ、$this->User->save($this->request->data)とするとうまくバリデーションが効いた。中途半端に効くというのは一番困るわー。