CakePHPのコントローラーでプラグインのモデルを使う場合

2014年 2月12日 PHP CakePHP

CakePHPです。
コントローラーでプラグインのモデルを使う場合は、Users.Userのようなプラグイン記法に則って書かないとダメ。
普通のモデルのように書くとClassRegistryに登録される際、実装が見つからないため、AppModelのインスタンスとして登録されてしまう。



findなどのAppModelの関数を使うだけであれば次の様に書いても問題ないが、

php
class SamplesController extends AppController {
     
    public $uses = array('User');
     
    public function index() {
        $users = $this->User->find('all');
        $this->set('users', $users);
    }
}

次のように対象のモデルに実装された関数を使おうとするとAppModelに実装されていないためエラーとなる。

php
class SamplesController extends AppController {
     
    public $uses = array('User');
     
    public function index() {
        $users = $this->User->foo();
        $this->set('users', $users);
    }
}

これだとOKです!

php
class SamplesController extends AppController {
     
    public $uses = array('Users.User');
     
    public function index() {
        $users = $this->User->foo();
        $this->set('users', $users);
    }
}


前へ 次へ