`

yii flash消息用法

    博客分类:
  • YII
 
阅读更多

见过的所有的MVC(Rails, TP, CakePHP)中,Flash这个东西都是放于SESSION中的, Yii也不例外。Yii里面的Flash由CWebUser管理, 也就是当前用户的唯一标示管理对象Yii::app()->user

设置消息方式:

//Yii::app()->user->setFlash($key,$value,$defaultValue=null)
# 成功信息提示
Yii::app()->user->setFlash('success', "Thinks saved success!");
# 错误信息提示
Yii::app()->user->setFlash('error', "here has an Error, Please check that!");
# 一般消息信息提示
Yii::app()->user->setFlash('notice', "messge here");

 上面的$key所有的都是可以自定义的. Yii只是把上面的信息按照一定的规则放于用户的SESSION信息中。

前台页面显示时候可以通过getFlash($key,$defaultValue=null,$delete=true)来获取指定的$key来获取相应的信息。

# 获取成功提示信息
Yii::app()->user->getFlash('success');

 我们可以通过简单的统一格式来显示这些信息:

foreach(Yii::app()->user->getFlashes() as $key => $message) {
    echo '<div class="flash-' . $key . '">' . $message . "</div>\n";
}

 默认调用getFlashe这些方法后会自动删除SESSION值的。 在一个请求中, 请求页面设置的flash, 可以在它当前页面显示, 也可以用于下一个页面显示(比如用户注册成功后,需要302跳转到一个新页面中, 新页面来显示这个注册成功的消息。 这个是可行的),但是除此之外的请求中是不能显示的。 是因为Yii CWebUser会自动检查flash. 所以检查机制会自动删除这些过期的消息

如需要也可以把flash设置为只有执行了getFlashe方法才允许删除flash消息。只需要在配置文件里面设置用户组件属性autoUpdateFlash为FALSE即可

array (
   'components'=>array(
       'user' => array(
            'autoUpdateFlash' => FALSE //设置为false
       ),
       ...
    ),
    ...
)

 Flash也经常与CController方法refresh()方法一起使用来刷新页面:

/**
 * Displays the contact page
 */
public function actionContact() {
    $model=new ContactForm;
    if(isset($_POST['ContactForm'])) {
        $model->attributes=$_POST['ContactForm'];
        if($model->validate()) {
            $headers="From: {$model->email}\r\nReply-To: {$model->email}";
            mail(Yii::app()->params['adminEmail'],$model->subject,$model->body,$headers);
            Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
            $this->refresh(); // 刷新页面
        }
    }
    $this->render('contact',array('model'=>$model));
}

 FROM:http://www.fengbloger.net/feng/583.html

分享到:
评论

相关推荐

    yii框架yii框架yii框架yii框架yii框架

    很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架

    yii的小部件使用

    ### yii的小部件使用 在Yii框架中,小部件(Widgets)是用于封装并重用页面元素的一种机制。本文主要探讨如何在Yii框架中...同时,通过本篇介绍的方法,我们也能更好地理解和掌握Yii框架中的一些核心概念和技术细节。

    yii框架中文手册教程和YII模板

    本教程将深入探讨Yii框架的核心概念和使用方法,同时提供一份中文手册教程,以便于中文使用者更好地理解和应用。 首先,Yii框架的核心特性包括MVC(模型-视图-控制器)设计模式、Active Record ORM(对象关系映射)...

    yii2swoole让yii2运行在swoole上

    5. **WebSocket支持**:结合Swoole,Yii2可以轻松地实现WebSocket服务,提供双向通信的能力,适用于实时推送消息、在线游戏等场景。 6. **协程(Coroutine)**:Swoole的协程机制能让开发者以同步代码的方式编写异步...

    Yii 2文件下载

    “找不到的朋友的福利”可能意味着这个压缩包包含了对学习或使用Yii 2.0非常有帮助的资源,可能是完整的框架安装包,也可能包含了一些示例项目或者特定功能的实现代码。 "需要怎么这么长我了个去"这部分看起来像是...

    Yii权威指南思维导图

    Yii支持视图助手(Helper),如CHtml,提供了许多方便的HTML生成方法。同时,Yii的布局功能使得页面的头部、底部等公共部分可以被有效地重用。 控制器(CController)是处理用户请求的中心,它包含了动作(Action)...

    yii项目源代码

    Yii框架是一款基于组件的高性能PHP...通过学习和实践,你不仅可以掌握Yii的基本用法,还能了解如何将Yii应用于实际项目中,解决实际问题。同时,开源的精神也鼓励你参与社区,共享你的知识和经验,共同推动技术的发展。

    深入理解Yii2.0

    采用的方式是分析框架的源代码,尝试从根上进行理解和阐述,并融入个人使用Yii开发的一些经验和教训。 通过本书,你将不仅仅了解到Yii怎么使用的实操技巧,还将掌握其实现的技术原理和内幕。 更为重要的是,接触...

    yii1.1.10 开发包(包含yii权威指南以及yii博客例子讲解)

    1. **性能优化**:Yii 使用缓存机制,如APC、Memcached或数据库缓存,来提高应用性能。此外,其代码经过精心设计和优化,确保在处理大量请求时依然快速响应。 2. **MVC(模型-视图-控制器)架构**:Yii 实现了MVC...

    YII 2数据库迁移(Migrations) 使用教程

    在`safeUp()`方法中,可以使用Yii 2提供的数据库操作API来创建数据表,并定义字段。例如: ```php public function safeUp() { $tableOptions = null; if ($this-&gt;db-&gt;driverName === 'mysql') { // 设置表为...

    Yii中表单用法实例详解

    接下来,我们将深入探讨Yii中表单的使用方法。 首先,创建模型是处理表单的第一步。模型(Model)在Yii中扮演着核心角色,它负责收集和验证用户输入的数据。对于临时性的数据,如登录表单,可以创建一个表单模型...

    Yii2.0打造京东商城平台PHP电商实战Yii2.0视频教程

    Yii2.0级基于Yii1.X完全重写的,不仅是小版本升级的升级。所以想要系统学习Yii2.0这个框架这套教程可以从实战项目带你入手。不错的学习YII框架的基础课程,电商系统的结构完整、框架资源太大,传百度网盘了,链接在...

    安装yii方法

    ### 安装Yii框架的方法及常见问题解决 #### 一、前言 Yii 是一个高性能的 PHP 框架,适用于开发 Web 应用程序。它不仅提供了丰富的功能集,如 MVC 架构支持、数据库抽象层、缓存机制等,还具有高度可配置性和扩展性...

    yii-1.0.4.r920

    2. 数据库支持:Yii 提供了强大的 ORM(对象关系映射)层,使得开发者可以使用 ActiveRecord 模式轻松操作数据库。这允许通过面向对象的方式处理 SQL 查询,提高了开发效率。 3. 配置管理:Yii 的配置系统允许...

    Yii Framework API手册

    Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...

    yii新闻系统源码

    通过分析这个yii新闻系统源码,开发者不仅能学习到Yii框架的基本用法,还能了解到如何构建一个完整的新闻管理系统,包括新闻的增删改查、权限控制、用户交互优化等多个方面,从而提升自己的PHP开发技能。

    yii1.1中文手册

    Yii1.1是其较早的一个版本,但即便如此,它仍然被许多开发者所使用,特别是那些需要维护旧项目的开发者。这个"yii1.1中文手册"是针对这个版本的详细文档,对于学习和理解Yii1.1框架的功能和工作原理至关重要。 Yii...

    YII 通用CURD外部Action 适合单表

    描述中的 "setFlash" 是Yii框架中用于设置Flash消息的一个方法。Flash消息是一种临时存储的信息,通常用于在用户完成某个操作后显示短暂的通知,例如成功保存数据或发生错误。这些消息只在当前会话中存在,并且在下...

    yii-1.1.8.r3324

    "yii-1.1.8.r3324" 版本是 Yii 框架的一个特定发行版,它在 1.1.x 系列中的一个稳定版本。这个版本号表示该框架在 1.1 主线版本基础上的第 3324 个修订版本。接下来,我们将深入探讨 Yii 框架以及这个版本的一些关键...

    新下载的yii2,yii framework

    描述中的“新下载的yii2”进一步强调了用户正准备开始使用或研究Yii2。Yii2的安装通常包括下载框架的压缩包,解压后会得到一个基本的项目结构,其中包括了运行Yii2框架所需的文件和目录。在这个例子中,"basic"很...

Global site tag (gtag.js) - Google Analytics