(CakePHP ver 2.x)
Controllerから複数のModelを呼び出すことは簡単に出来ます。
public $uses = array(‘Model1’,’Model2’);
のようにしてModelの設定をするだけで、Model内のfunctionを呼び出せます。
ここでは、Modelの中で他のModelの中のfunctionを使うのも簡単にできちゃうよってお話をします。
登場するのは
App:import。
App:importは適用範囲が広いようですが、ここではModelを呼び出します。
よく使う処理をまとめたクラスを「vendors」に入れて「App:import」で呼び出したりして使ったりするようです。
#やり方は簡単3Step
*****
step1:modelの呼び込み
step2:クラスのインスタンス化
step3:実際に使う
*****
ここでは、読み込むmodelをHogeにします。
##step1:modelの呼び込み
App:import(‘Model’,’Hoge’);
の一行で呼び出します。
##step2:クラスのインスタンス化
初期化します(左辺の変数名はご自由に)
$hogeModel = new Hoge();
##step3:実際に使う
$this->hogeModel->find(‘all’,$options);
みたいな感じで使っちゃって下さい!
#注意点
クラスは一度しかロードされない。
適切な親クラスがロードされる。
自動的にパスを解決することが多い。
クラスは初期化する必要がある。
requireでの読み込みと同じイメージでオーケー。