YII only stores the last flash?
yii
Solution
That is expected behavior. Yii flash messages is a key-value store, which means for each key (say error) a value (message) is stored.
With your current code, you are overwriting the value of `error` key with a new message in each call to `setFlash`.
You could (pseudo)append your messages to the same key, instead of overwriting them:
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!");
As you can see from the above, `getFlash` gets a single message from the flash store.
Problem
I have the following code: ``` 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>'; } ``` No matter what I do, it ALWAYS just prints "Data3 failed!". Why is it overwriting flashes with the last one, and not adding all flashes into an array? I've tried this in my config with no luck: ``` 'user' => array( 'allowAutoLogin' => true, 'class' => 'WebUser', 'autoUpdateFlash' => false, ), ``` Any ideas?