App::uses('MyModel', 'Model');
$model = new MyModel();
すればいいんだけど、そのインスタンス化するモデル内でApp::usesを使っていたら、そこがエラーになってしまった。原因を調べてたところ、モデルを使う他の方法を見つけたのでそちらを試す。
参考:コンポーネントでモデルを使う - by shigemk2
//コンポーネントファイル内
pulic function initialize(Controller $controller){
//コントローラを変数に格納
$this->controller = $controller;
}
public function myMethod(){
//コントローラ内で使用しているモデルを使う
$this->controler->MyModel->find('hoshii-data');
}
コントローラとの関連が濃すぎると感じたが、こういうやり方があんだなーと感心しつつ、真似して実装。使ってみたら、いやー便利!
と思ったところで、上記のページの最後の行を見落としてたことに気づいた。
追記:基本的にコンポーネント内でモデルを使う事は推奨されていないので、極力使わない方向でいく。
とりあえずはApp::usesがエラーになった理由&なんでコンポーネントで使っちゃだめなの?&他の方法を探そう
0 件のコメント:
コメントを投稿