CakePHPでヘルパーからモデルを直接呼びたい

ヘルパーからモデルを呼びたいとき。
まぁ、そもそも正直言っておすすめできないです。
(コントローラからモデルを呼んでおいて、結果を set でviewに与えてそこで処理するのが正しいやりかたと思ってます・・・ちょっとくどいけど。)

Nyaというヘルパーのmyu関数から、Mofuというモデルを呼びたいという設定。

以前こうすればいいらしいときいたので試したら

class NyaHelper extends Helper {
        function myu() {
                $this->view->controller->Mofu->find("all","");
                return "nya!!" ;
        }
}

これをviewでこうすれば、

echo $nya->myu() ;

OKかなと思って、やってみたら、エラー・・・。
というか helper.php 見たら、viewがクラス変数じゃないし!

というわけで調べてたら見つかりまして
こうするしかないようです。

class NyaHelper extends Helper {
        function myu() {
                $r = ClassRegistry::getObject('Mofu');
                $r->find("all","");
                return "nya!!" ;
        }
}

正直気持ち悪い・・・です・・・。

Comments are closed.