Cakephp 调用setFlash后是否清除会话闪存?

Cakephp 调用setFlash后是否清除会话闪存?,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我正在阅读“Cake PHP1.3应用程序开发食谱”第1章“允许使用用户名或电子邮件登录”一节 问题是,当您使用电子邮件登录时,即使您成功登录,Auth组件也已经设置了“无效帐户”的闪存消息。因此,在通过电子邮件成功登录之后,我需要在用户控制器的登录操作中取消设置该消息。将其设置为空字符串不起作用,因为会显示一个空的橙色条 有没有一种方法可以完全取消flash消息的设置 谢谢, Jonah要使用CakePHP 1.3在控制器内使用SessionComponent取消设置flash消息,请执行以下

我正在阅读“Cake PHP1.3应用程序开发食谱”第1章“允许使用用户名或电子邮件登录”一节

问题是,当您使用电子邮件登录时,即使您成功登录,Auth组件也已经设置了“无效帐户”的闪存消息。因此,在通过电子邮件成功登录之后,我需要在用户控制器的登录操作中取消设置该消息。将其设置为空字符串不起作用,因为会显示一个空的橙色条

有没有一种方法可以完全取消flash消息的设置

谢谢,
Jonah

要使用CakePHP 1.3在控制器内使用
SessionComponent
取消设置flash消息,请执行以下操作:

$this->Session->delete('Message.flash');

我用这个代替上面的代码

$this->Session->delete('Message.auth');

如果您担心在视图中调用Session->flash()函数后,消息会一直保存在内存中,那么您不必担心。在flash()函数中,通过以下调用清除消息:

CakeSession::delete('Message.' . $key);

因此,您不需要自己删除该消息。

如果登录正确,则不应输出该消息。你确定你的代码是正确的吗?你能发布你在UserController/AppController中写的关于登录部分的内容吗?我在书中遇到了完全相同的问题,我很高兴找到了你的帖子!最佳答案。谢谢@starlocke