CakePHP - 将整个页面呈现为HTML以附加到电子邮件

时间:2013-12-18 15:43:52

标签: cakephp

我已成功创建在/ 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放在视图中,但我希望将来使用相同的布局创建其他报告,并希望避免重复。

1 个答案:

答案 0 :(得分:1)

请改用以下内容。注意传递给函数的额外数组参数

bare表示是否包含布局。将其设置为0,即false强制它包含布局。包括returnrequested设置为1requested表示请求是否来自requestAction。

访问http://book.cakephp.org/2.0/en/controllers/request-response.htmlhttp://book.cakephp.org/2.0/en/controllers.html以获取参考

  

$ this-> requestAction('/ controller / report',array('return','bare'=>   0));