hasFlash - getFlash - что это?

Увидел в форме контакта следующий код:



<?php if(Yii::app()->user->hasFlash('contact')): ?>


<div class="confirmation">


<?php echo Yii::app()->user->getFlash('contact'); ?>


</div>


<?php else: ?>


Для чего hasFlash и getFlash - из документации не понял? Что такое Flash Message?

В контроллере можно прописать что-то вроде

Yii::app()->user->setFlash('contact',"Data saved!");

потом сделать redirect() или refresh()

и сообщение появится на странице.

Подробнее:

http://www.yiiframew…oc/cookbook/21/

ага, понял, спасибо

у меня кстати почему то не срабатывает setFlash

Quote

link=topic=3221.msg17515#msg17515 date=1247162760]

у меня кстати почему то не срабатывает setFlash

а подробнее?

а не, все катит.

просто думал оно по умолчанию как в кейке задержит страницу пока не нажмешь по ссылке (или авторедирект через 5 сек к примеру). а у меня сразу редиректит и в верху страницы пишет "Data saved!".

Сделал все как описано - ничего не помогает, не появляется сообщение и все тут.

Контроллер MyController.php:



        public function actionMyAction()


        {


            Yii::app()->user->setFlash('Message', 'Есть flash!');


            $this->redirect(Yii::app()->baseUrl);


            return;


        }


view, который по редиректу:



            <?php if(Yii::app()->user->hasFlash('Message')): ?>


                <?php echo Yii::app()->user->getFlash('Message'); ?>


            <?php else: ?>


                Нет flash.


            <?php endif; ?>


Вообщем копипаст в чистом виде - не появляется. Выводится "Нет flash." Может что-то где-то указать надо?

Вообщем что-то связанное с сессиями. Если закоментить в конфиге следующие настройки, то все ок заработает:



'components'=>array(


        /*'session'=>array(


            'class'=>'CDbHttpSession',


            'connectionID'=>'db',


            'sessionTableName'=>'users_sessions',


        ),*/


),





Не нашел как настроивается flash сообщения при включенных сессиях.

Извините за глупый вопрос, а в вашей БД есть таблица под названием users_sessions, и если есть, то совпадает ли её структура с требуемой? :-X

Да есть.



mysql> describe users_sessions;


+--------+----------+------+-----+---------+-------+


| Field  | Type     | Null | Key | Default | Extra |


+--------+----------+------+-----+---------+-------+


| id     | char(32) | NO   | PRI | NULL    |       |


| expire | int(11)  | YES  |     | NULL    |       |


| data   | text     | YES  |     | NULL    |       |


+--------+----------+------+-----+---------+-------+


3 rows in set (0.01 sec)





mysql>





Без нее собственно и не работают сессии.

Может попробовать в конфиге сессии прописать: autoStart => true ?