duke1999
(Duke1999)
July 9, 2009, 10:42am
1
Увидел в форме контакта следующий код:
<?php if(Yii::app()->user->hasFlash('contact')): ?>
<div class="confirmation">
<?php echo Yii::app()->user->getFlash('contact'); ?>
</div>
<?php else: ?>
Для чего hasFlash и getFlash - из документации не понял? Что такое Flash Message?
rosko
(A)
July 9, 2009, 10:49am
2
В контроллере можно прописать что-то вроде
Yii::app()->user->setFlash('contact',"Data saved!");
потом сделать redirect() или refresh()
и сообщение появится на странице.
Подробнее:
http://www.yiiframew…oc/cookbook/21/
Zolter
(Zolter Od)
July 9, 2009, 6:06pm
4
у меня кстати почему то не срабатывает setFlash
Zolter
(Zolter Od)
July 9, 2009, 7:43pm
6
а не, все катит.
просто думал оно по умолчанию как в кейке задержит страницу пока не нажмешь по ссылке (или авторедирект через 5 сек к примеру). а у меня сразу редиректит и в верху страницы пишет "Data saved!".
system
(system)
July 11, 2009, 12:46pm
7
Сделал все как описано - ничего не помогает, не появляется сообщение и все тут.
Контроллер 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." Может что-то где-то указать надо?
system
(system)
July 11, 2009, 7:18pm
8
Вообщем что-то связанное с сессиями. Если закоментить в конфиге следующие настройки, то все ок заработает:
'components'=>array(
/*'session'=>array(
'class'=>'CDbHttpSession',
'connectionID'=>'db',
'sessionTableName'=>'users_sessions',
),*/
),
Не нашел как настроивается flash сообщения при включенных сессиях.
andy_s
(Arekandrei)
July 12, 2009, 6:51am
9
Извините за глупый вопрос, а в вашей БД есть таблица под названием users_sessions, и если есть, то совпадает ли её структура с требуемой?
system
(system)
July 12, 2009, 7:19am
10
Да есть.
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>
Без нее собственно и не работают сессии.
andy_s
(Arekandrei)
July 12, 2009, 7:30am
11
Может попробовать в конфиге сессии прописать: autoStart => true ?