メール送信などを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’);などとしておけば大丈夫です。

