これは難しい問題ですが、MVCモデルを壊しているとは思えません。CakePHPのコントローラからヘルパーにアクセスするには?
コントローラからモデルから取得したデータをロードしています。私はほとんどすべてのアクションでこのオブジェクトをビューに渡しています。しかし、私はそれが道になると思い
<h3><?php echo $parser->section_name($section); ?></h3>
:私は、ヘルパーからこのデータを処理していると私は、オブジェクトを引数として渡している:
コントローラ:
$this->('section', $section);
はヘルパーをパーサーヘルパーの内部で$section
オブジェクトをプライベート変数として渡すことができれば良いです。私は、各ビューの1行目にこれを行うことができます:
$parser->section_object = $section;
そして、それぞれのパーサ方法は、質問がある
function section_name(){
return $this->section_object['Section']['name'];
}
のようになります。は、コントローラからこれをautomatizateする方法はありますか?コントローラはヘルパーにアクセスすることはできませんので、私はコントローラからヘルパーを作成し、そこにローカル変数を設定してみました:
function beforeFilter(){
$section = $this->Section->getOne();
App::import('Helper', 'Parser');
$ParserHelper = new ParserHelper();
$ParserHelper->section_object = $section;
$this->set('parser', $ParserHelper);
}
しかし、ヘルパーが他のヘルパーが含まれている場合、彼らはロードされず、ヘルパーは多くのエラーを引き起こします。
ありがとうございました。
同様の質問:あなたのヘルパーはHtmlHelperのを使用している場合たとえば、あなたのような何かをしなければなりません質問/ 6450519/cakephp-how-to-use-a-helper-in-a-controller)* –