加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

YII只存储最后一个闪存?

发布时间:2020-12-13 16:50:16 所属栏目:PHP教程 来源:网络整理
导读:我有以下代码: Yii::app()-user-setFlash('error',"Data1 failed!");Yii::app()-user-setFlash('error',"Data2 failed!");Yii::app()-user-setFlash('error',"Data3 failed!");$flashes = Yii::app()-user-getFlashes();if (sizeof($flashes) 0 ) { print '
我有以下代码:

Yii::app()->user->setFlash('error',"Data1 failed!");
Yii::app()->user->setFlash('error',"Data2 failed!");
Yii::app()->user->setFlash('error',"Data3 failed!");

$flashes = Yii::app()->user->getFlashes();
if (sizeof($flashes) > 0 ) {
  print '<div id="flashes" style="margin: 5px; ">';
  foreach($flashes as $key => $message) {
    print '<div class="flash-' . $key . '">' . $message . "</div>n";
  }
  print '</div>';
}

无论我做什么,它总是只打印“Data3失败!”.为什么用最后一个闪存覆盖闪烁,而不是将所有闪存添加到阵列中?

我在我的配置中试过这个但没有运气:

'user' => array(
  'allowAutoLogin' => true,'class' => 'WebUser','autoUpdateFlash' => false,),

有任何想法吗?

解决方法

这是预期的行为. Yii flash消息是一个键值存储,这意味着每个键(比如错误)存储一个值(消息).

使用当前代码,您将在每次调用setFlash时用新消息覆盖错误键的值.

您可以(伪)将消息附加到相同的密钥,而不是覆盖它们:

Yii::app()->user->setFlash('error',Yii::app()->user->getFlash('error','')." Data2 failed!");
Yii::app()->user->setFlash('error','')." Data3 failed!");

从上面可以看到,getFlash从flash存储中获取一条消息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读