YII:flash message使用技巧

A flash message is available only in the current and the next requests.

实际上,Yii::app()->user中的flash功能是由session实现的。
有趣的是,当一个页面既是get又是post(即提交表单后仍访问该页面),若刷新浏览器就会重复提交。此时,使用redirect和session既能传递变量又能防止重复提交。
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(); ?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容