YII getflash()是否不删除?

YII getflash()是否不删除?,yii,Yii,在开始回答之前,请确保您理解我的情况 我有一些ajax调用,它们可以创建flash 我还有其他ajax调用,它们以JSON的形式获取flash 当前正在发生的事情:我点击一个按钮来创建闪光灯。之后,我运行一个ajax调用,执行: public function actionGetAllFlashesAsJSON() { $flashMessages = Yii::app()->user->getFlashes(true); $returnResult = array();

在开始回答之前,请确保您理解我的情况

  • 我有一些ajax调用,它们可以创建flash
  • 我还有其他ajax调用,它们以JSON的形式获取flash
  • 当前正在发生的事情:我点击一个按钮来创建闪光灯。之后,我运行一个ajax调用,执行:

    public function actionGetAllFlashesAsJSON() {
       $flashMessages = Yii::app()->user->getFlashes(true);
       $returnResult = array();
       foreach ($flashMessages as $key => $value) {
         $newItem = array();
         $newItem['message']  = $value;
         $newItem['kind']     = $key;
         $returnResult[]= $newItem;  
       }
       print json_encode($returnResult);
       die();
    }
    
    我的问题是,当我连续两次执行此函数时,它仍会不断返回闪烁。但是,如果我刷新站点,它会显示错误,如果我再次按刷新,它就会消失。我的理论是页面刷新会导致其他类型的消息删除。。。但是什么呢?在我收到上述代码中的消息后,如何强制删除这些消息


    更多背景信息:我使用闪光灯作为错误信息,但我希望它们在创建时出现在我网站的顶部。flash可能是通过Ajax创建的,所以我让javascript运行来检查新消息并显示它们,但我的问题是它会多次显示消息,因为调用getflash后它们不会被删除?

    flash消息由会话变量控制,在加载页面时,会话变量会被Yii破坏(可能在框架的某个相当深的地方)。在ajax请求开始时,您必须手动销毁所有以前的flash消息

    您可以使用:getflash()获取所有现有的flash消息


    对于其他flash message方法,请查看

    Nevermind,我的问题与Javascript有关。它确实删除了这些内容……不确定我是否应该删除此帖子?您可以像正常会话一样删除它们(销毁)。如果需要,请在您的呼叫中删除此帖子:)