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にのっとって何か他に良い方法があれば是非知りたいです。

