CakePHP2.x にて Helper(ヘルパー) から model(モデル) の呼び方・使い方を調べてみました。
色々出てきたのですが以下の方法でないと出来なかったので、また迷いそうなので記録しておきます。
Helper(ヘルパー)
<?php App::uses('AppHelper', 'View/Helper'); class TestHelper extends AppHelper { function getTestData($id) { $TestModel = ClassRegistry::init('Testmodel'); $testdata = $TestModel ->findById($id); return $testdata ; } }
View(ビュー)
<p><?php echo $this->Test->getTestData($id); ?></p>
Controller(コントローラー)
<?php class TestController extends AppController { public $uses = array('Test');
Model(モデル)
<?php class Test extends AppModel { }
の例で出来ました。他にも検索したら出てきたのですが、そのやり方では出来なかったです。バージョンが違うのでしょうか・・・
そもそも、本来はMVCだとhelperからmodelを呼ぶ事がおかしいという意見も見られましたが、その為の回避方法としてコントローラーにviewに渡す処理を付加したり、DBに項目を増やしたりもやってみようとしたのですが、どうもそっちの方が大変に感じたので、今回のようにhelperからmodelを呼ぶようにしてみました。
MVCにのっとって何か他に良い方法があれば是非知りたいです。