CakePHPは、MVCモデルをベースとしたフレームワークです。
なので、
通常はビューのヘルパーからモデルを呼び出すようなことはしません。
ただ、
時々、ヘルパーからモデルを呼び出すことでコード量を格段に減らせることがあります。
例えば、
賃貸物件の検索サイトを構築していると、
サイトの全ページに掲載されている全物件数を表示させることがあります。
その場合、
コントローラの各メソッドにモデルを読み込んで件数をビューに渡してやるコードを書くよりかは、
ヘルパー側でモデルを読み込んで登録物件数を取得して
件数表記の部分のHTMLを返してやる方が遥かにコードが少なくなります。
例えば、
class CountHelper extends AppHelper {
function makeCountHtml() {
$this->uses = array("Bukken");
//登録物件数を取得
$count = $this->Bukken->find("count");
print<<<EOD
<div>現在の登録物件数:<span>$count</span>件</div>
EOD;
}
}
というヘルパーを作成します。
あとは、
ビューに
<?php echo $this->Count->makeCountHtml(); ?>
と記入してやれば件数部分のHTMLを吐き出してくれます。
とはいえ、
やはり多くのサイトで言われているように、
モデル、ビュー、コントローラ毎にそれぞれ本来の役割があるので、
この方法はあまりお勧めできる方法ではありません。
なので、
こんな方法もあるのだという程度に思っておいたほうがいいかもしれないですね!!
この記事へのコメントはありません。