在CakePhp 2.0中,使用CakeEmail新组件似乎没有输出闪存消息:在我的控制器中,我放了:
$email = new CakeEmail(array('log'=>true));
$email->transport('Debug');在我看来
echo $this->Session->flash('email');但没有打印出任何内容。该功能(flash)是否已在2.0中删除?
发布于 2012-09-24 21:06:19
当然,在cakephp2.0中有闪存功能,详情请查看此处:http://book.cakephp.org/2.0/en/core-libraries/components/sessions.html
如果你想让你的flash消息出现在你的视图中,你必须首先在你的控制器操作中设置它。
//controller
$this->Session->setFlash('email');
//view
echo $this->Session->flash();//以上将输出。
<div id="flashMessage" class="message">
'email'.
</div>发布于 2012-09-24 18:05:51
蛋糕、电子邮件库、组件或传输类都不会接触会话,也不会编写任何这样的flash内容。据我所知,他们从未这样做过。但是它们将电子邮件内容作为数组返回给DebugTransport。
因此,您可能希望获取返回的数组并将其记入日志:
$res = $this->Email->send();
$this->Session->setFlash($res ? 'Email sent' : 'Email not sent');或者诸如此类的东西。
发布于 2012-09-24 22:08:08
在Cake 2.x中,调试传输不会在会话中设置电子邮件内容。只需检查返回值$contents = $email->send();。$contents将包含报头和消息,因此可以根据需要使用它们。
https://stackoverflow.com/questions/12562661
复制相似问题