Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
YII只存储最后一个闪光灯?_Yii - Fatal编程技术网

YII只存储最后一个闪光灯?

YII只存储最后一个闪光灯?,yii,Yii,我有以下代码: 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($

我有以下代码:

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>';
}

有什么想法吗?

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

使用当前代码,在每次调用
setFlash
时,您都会用一条新消息覆盖
error
键的值

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

Yii::app()->user->setFlash('error', "Data1 failed!");
Yii::app()->user->setFlash('error',
    Yii::app()->user->getFlash('error', '')." Data2 failed!");
Yii::app()->user->setFlash('error',
    Yii::app()->user->getFlash('error', '')." Data3 failed!");
正如您从上面看到的,从flash store获取一条消息

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