sabersma
- sabersma 2017-10-09 已签到连续签到1天,获得了5个金钱
- sabersma 2016-04-22 已签到连续签到1天,获得了5个金钱
- sabersma 2016-02-25 已签到连续签到1天,获得了5个金钱
- sabersma 2016-01-11 已签到连续签到1天,获得了5个金钱
- sabersma 2015-12-16 已签到连续签到2天,获得了10个金钱
- sabersma 2015-12-15 已签到连续签到1天,获得了5个金钱
- sabersma 2015-11-30 已签到连续签到1天,获得了5个金钱
- sabersma 2015-11-27 已签到连续签到1天,获得了5个金钱
flash
内容存储在session
中, 和debug module
没什么关系.addFlash('a', 'b')
之后, 再getFlash('a')
之后, 是可以销毁这条消息.但是 : 是在下次请求中销毁, 本次请求的后续处理中还存在.
@sabersma 大概找到原因了。。推测是因为Yii入口脚本我使用
session_start()
开启session而不是使用Yii::$app->session->open()
方式开启,public function open() { if ($this->getIsActive()) { return; } $this->registerSessionHandler(); $this->setCookieParamsInternal(); @session_start(); if ($this->getIsActive()) { Yii::info('Session started', __METHOD__); $this->updateFlashCounters(); } else { $error = error_get_last(); $message = isset($error['message']) ? $error['message'] : 'Failed to start session.'; Yii::error($message, __METHOD__); } }
所以导致open()在调用时,判断到session已开启直接返回,没有执行后续的updateFlashCounters()方法进行清理,感觉这里的代码,,嗯。有点不太。。机智?