22

CakePHPのコンポーネントでモデルを使用するにはどうすればよいですか?

コントローラーでは、

public $uses = array(...);

しかし、それはコンポーネントでは機能しません。

何ですか?

4

3 に答える 3

35

このコードを試してください:

$model = ClassRegistry::init('Yourmodel');

モデルをコンポーネントに追加する簡単なクエリ

$result= $model->find('all');
于 2012-12-13T14:13:44.997 に答える
14

あなたはこのようにそれを行うことができます:

$this->ModelName = ClassRegistry::init('ModelName');

ただし、コンポーネント内でモデルを使用しないことを前提としています。

于 2012-12-13T14:13:57.703 に答える
3

現在のモデルが必要な場合は、コンポーネントの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');
}
于 2015-01-11T18:27:51.753 に答える