[CakePHP1.2]shellでviewを使う場合の注意

メール送信などをshellで行う時、viewを使うと便利ですが、ハマルポイントがあったのでご紹介します。
概ね、こんな感じのコードで取得できます。

App::import('Core', 'Controller');
App::import('Core', 'View');
class HogehogeShell extends Shell { 
    public $tasks = array('View'); 
    function startup(){} 
    function main(){ 
      $p=array('test'=>'test');
      $text = $this->View->getContent('hoge', $p);
    }
}

getContent()ですが、第1パラメータはテンプレート名で\app\vendors\shells\templates の下に置きましょう。
第二パラメータの$pはviewに渡すパラメータです。(通常$this->set()メソッドで渡すやつですね)

ポイントは第二パラメータで、渡すパラメータがない場合にarray()等を渡すとfatal errorになってしまいます。
適当に、array(‘hoge’=>’hoge’);などとしておけば大丈夫です。

タイトルとURLをコピーしました