我已成功创建在/ controller / report
访问的报告我现在想创建一个单独的控制器方法,将此报告创建为HTML文件,并通过电子邮件发送给指定的用户。我已经做到了这一点,但遇到了一个障碍。呈现HTML文件时,它只是/ report方法中的视图元素 - 不呈现布局(包括CSS)。
这是基本结构:
public function email_report() {
$render = $this->requestAction('/controller/report');
//$render is then used by fwrite to create a .HTML file, which is then attached to an email
}
public function report() {
//yada yada
//render in report layout rather than default
$this->render('report', 'reports');
}
所以问题是$ render只包含视图内容,而不是我的“报告”布局中的内容。我还需要做什么才能在HTML文件中获取布局?
我可以将所有HTML放在视图中,但我希望将来使用相同的布局创建其他报告,并希望避免重复。
答案 0 :(得分:1)
请改用以下内容。注意传递给函数的额外数组参数
bare
表示是否包含布局。将其设置为0
,即false
强制它包含布局。包括return
将requested
设置为1
。 requested
表示请求是否来自requestAction。
访问http://book.cakephp.org/2.0/en/controllers/request-response.html和http://book.cakephp.org/2.0/en/controllers.html以获取参考
$ this-> requestAction('/ controller / report',array('return','bare'=> 0));