A flash message is available only in the current and the next requests.
實際上,Yii::app()->user中的flash功能是由session實現(xiàn)的。
有趣的是,當(dāng)一個頁面既是get又是post(即提交表單后仍訪問該頁面),若刷新瀏覽器就會重復(fù)提交。此時,使用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(); ?>