cakePHP覚書#4

ひとつのモデルの中で関数を作成して簡単に利用したいと思ったのですが、結果を返す際に
他のモデルも参照しなくちゃいけなくなりました。
このあたりは、アソシエーションを使ったほうが良いのかもしれませんが、データベースの作成がまずくて
うまく出来そうに無いので、モデル内の関数で他のモデルを呼び出して見ました。

$this->loadModel('ModelA');

これは、やはりダメでした。

importでmodelを呼び出して使うみたい。

App::import('Model','modelA');
$modelA = new modelA;
$modelA->find($conditions,null,$orders);

こんな感じでいいようです。さて今から検証。

検証の結果うまくいきました。上記App::import(‘model’と小文字になっていたところを訂正。

モデルの中で他のモデル呼び出すって、ちょっと邪道かなという気もします。

componentあたりに関数作成したほうがいいかもしれませんね。

また、コントローラの中でusesでたくさんのモデル定義していると使わなくてもSQLが走っているようです。

基本になるモデルひとつだけusesで定義しておくか、$uses=null;にしておいて、必要なアクションで必要なモデルを

loadModelしたほうが良い気がしますね。

まだパフォーマンスを上げる段階ではないですが、一通り動作するようになれば、次はパフォーマンス向上が大事だと思います。

現在はWindowsXPの非力なマシン上でXampp環境でのテストですが、ファンが唸ってますからねw

本番では随分昔のDellサーバーに乗せる予定です。こっちも非力ですからね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です