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