Yii setFlash with Logout

Luc*_*nto 3 php yii

我想要使​​用命令序列:

Yii::app()->user->setFlash('success', "Successful!");
Yii::app()->user->logout();
$this->redirect(array('user/login'));
Run Code Online (Sandbox Code Playgroud)

用户已注销并重定向,但Setflash无效.我也尝试改变2个frist命令的顺序,但是遇到了同样的问题.如果我不注销用户,Setflash工作正常.

如何使两个命令都有效?

dzo*_*ona 6

这应该工作

Yii::app()->user->logout();
Yii::app()->session->open();
Yii::app()->user->setFlash(...);
Run Code Online (Sandbox Code Playgroud)

如果您需要销毁整个会话但之后想要设置闪存,则可以通过以下方式扩展CWebUser:

<?php

class BaseWebUser extends CWebUser
{

        public function logout($destroySession = true)
        {
                parent::logout($destroySession);
                Yii::app()->session->open();
        }

}

?>
Run Code Online (Sandbox Code Playgroud)

仔细看看这里