【问题标题】:Clear Session flash after setFlash has been called?调用 setFlash 后清除会话闪存?
【发布时间】:2011-06-04 06:56:46
【问题描述】:

我正在阅读“Cake PHP 1.3 Application Development Cookbook”,CH。 1 -- “允许使用用户名或电子邮件登录”部分。

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

有没有办法完全取消设置 Flash 消息?

谢谢, 约拿

【问题讨论】:

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

标签: cakephp cakephp-1.3


【解决方案1】:

要在 CakePHP 1.3 中取消设置 flash 消息,在控制器中使用 SessionComponent

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

【讨论】:

  • 最佳答案。谢谢@starlocke
【解决方案2】:

我用这个代替上面的代码。

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

【讨论】:

    【解决方案3】:

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

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

    所以您不需要自己删除消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      • 2014-08-16
      • 1970-01-01
      • 2012-06-04
      • 2013-08-03
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多