A flash message is available only in the current and the next requests.
實(shí)際上,Yii::app()->user中的flash功能是由session實(shí)現(xiàn)的脖镀。
有趣的是始腾,當(dāng)一個(gè)頁面既是get又是post(即提交表單后仍訪問該頁面)蕴轨,若刷新瀏覽器就會(huì)重復(fù)提交限府。此時(shí),使用redirect和session既能傳遞變量又能防止重復(fù)提交。
action
public function actionTestForm(){
if(Yii::app()->request->getPost('test_form')){
//[TODO]
$msg = 'test message';
Yii::app()->user->setFlash('msg', $msg);
$this->refresh();
}
$this->render("test_form");
}
view
<?php if(Yii::app()->user->hasFlash('msg')): ?>
<div class="flash-message">
<?php echo Yii::app()->user->getFlash('msg'); ?>
</div>
<?php endif; ?>
<?php $form = $this->beginWidget('CActiveForm'); ?>
<?php echo CHtml::textField('text_form[field]'); ?>
<?php echo CHtml::submitButton(); ?>
<?php $this->endWidget(); ?>