18
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CakePHP Modelの中で他のモデルを使う(App:import を作ってクラスを読み込む)

Last updated at Posted at 2015-04-10

(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での読み込みと同じイメージでオーケー。

18
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?