たきゃはしです

Webとかデザインとかプログラムとか

【解決】CakePHP1.3 - コントローラーでヘルパーを使えない件


ってかヘルパーって原則としてビューでしか使えないみたいね〜へぇへぇ

とりあえず、最初はcontrollerで下のようにしてました

var $helpers = array('Xml');

function get_xml() {
    return $xml->serialize($this->data);
}


Fatal error: Call to a member function serialize() on a non-object in 〜


うおおおおい!なんでやねん!!!

と、試行錯誤して以下の方法で解決した。

var $helpers = array('Xml');

function get_xml() {
    App::import('Helper', 'Xml');
    $xml = new XmlHelper();
    return $xml->serialize($this->data);
}


これでHtmlヘルパーやFormヘルパー等、その他のヘルパーにも応用できますね〜。

var $helpers = array('Html', 'Form');

function hoge() {
    //Htmlヘルパーの場合
    App::import('Helper', 'Html');
    $html = new HtmlHelper();

    //Formヘルパーの場合
    App::import('Helper', 'Form');
    $form = new FormHelper();
}


こんな横着しない方がいいんですけどね!