CakePHPのコンポーネントでモデルを使用するにはどうすればよいですか?
コントローラーでは、
public $uses = array(...);
しかし、それはコンポーネントでは機能しません。
何ですか?
このコードを試してください:
$model = ClassRegistry::init('Yourmodel');
モデルをコンポーネントに追加する簡単なクエリ
$result= $model->find('all');
あなたはこのようにそれを行うことができます:
$this->ModelName = ClassRegistry::init('ModelName');
ただし、コンポーネント内でモデルを使用しないことを前提としています。
現在のモデルが必要な場合は、コンポーネントのinitialize()またはstartup()コールバックを使用できます。
public function initialize(Controller $controller) {
$this->Controller = $controller;
$this->Model = $this->Controller->{$this->Controller->modelClass};
$this->modelAlias = $this->Model->alias;
parent::initialize($controller);
}
これで、コンポーネントのどこからでもモデルにアクセスできます。
public function countAllItems() {
return $this->Model->find('count');
}