Cake PHP コンポーネントでモデルを使用する方法
知っている限りだと、2通りのやり方があります。(他にあるかもですが・・・
1.loadModel() でモデル指定
2.コントローラーのオブジェクト渡し
1.loadModel() でモデル指定
cakePHPの関数にてloadModel関数があります。それを使用する。
私は主にこっちを使ってます。
<?php // 使用するモデルクラスの呼び出し loadModel('hoge'); loadModel('hogehoge'); class TestComponent extends Object{ public function aaaaa(){ $hoge_dao = new hoge(); $hogehoge_dao = new hogehoge(); $hoge_data = $hoge_dao->findAll(); $hogehoge_data= $hogehoge_dao->findAll(); }
2.コントローラーのオブジェクト渡し
使用する関数の引数にコントローラーのオブジェクトを渡すもしくは、startupメソッドを使用する。
呼び出し元のコントローラにて、モデルを呼び出す必要があります。
わけわからんくなるので、必要最小限しか使ってません。
<?php class TestComponent extends Object{ private $controller; // startupはコントローラで指定があると自動的に実行される public function startup(&$controller){ $this->controller = $controller; } // $this->controllerを使用する場合 public function aaaaa(){ $hoge_data = $this->controller->hoge->findAll(); $hogehoge_data= $this->controller->hogehogehoge->findAll(); } // 引数にオブジェクトを渡す場合 public function bbbbb(&$controller){ $hoge_data = $controller->hoge->findAll(); $hogehoge_data= $controller->hogehogehoge->findAll(); }