见过的所有的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框架中,小部件(Widgets)是用于封装并重用页面元素的一种机制。本文主要探讨如何在Yii框架中...同时,通过本篇介绍的方法,我们也能更好地理解和掌握Yii框架中的一些核心概念和技术细节。
本教程将深入探讨Yii框架的核心概念和使用方法,同时提供一份中文手册教程,以便于中文使用者更好地理解和应用。 首先,Yii框架的核心特性包括MVC(模型-视图-控制器)设计模式、Active Record ORM(对象关系映射)...
“yii框架中文手册教程.pdf”是Yii框架的中文版官方手册,它是学习Yii框架的重要资源。这份PDF文档通常会包括以下内容: 1. **安装与配置**:介绍如何在服务器上安装Yii,以及设置基本的项目环境。 2. **快速入门**...
5. **WebSocket支持**:结合Swoole,Yii2可以轻松地实现WebSocket服务,提供双向通信的能力,适用于实时推送消息、在线游戏等场景。 6. **协程(Coroutine)**:Swoole的协程机制能让开发者以同步代码的方式编写异步...
“找不到的朋友的福利”可能意味着这个压缩包包含了对学习或使用Yii 2.0非常有帮助的资源,可能是完整的框架安装包,也可能包含了一些示例项目或者特定功能的实现代码。 "需要怎么这么长我了个去"这部分看起来像是...
Yii支持视图助手(Helper),如CHtml,提供了许多方便的HTML生成方法。同时,Yii的布局功能使得页面的头部、底部等公共部分可以被有效地重用。 控制器(CController)是处理用户请求的中心,它包含了动作(Action)...
Yii2 后台系统可能会使用 `yii\webUploadedFile` 类来处理文件上传,配合 `yii\imagine` 扩展进行图片处理,如裁剪、缩放等,确保头像符合预设尺寸。此外,文件存储可以本地化,也可以使用云存储服务如 AWS S3 或...
Yii框架是一款基于组件的高性能PHP...通过学习和实践,你不仅可以掌握Yii的基本用法,还能了解如何将Yii应用于实际项目中,解决实际问题。同时,开源的精神也鼓励你参与社区,共享你的知识和经验,共同推动技术的发展。
采用的方式是分析框架的源代码,尝试从根上进行理解和阐述,并融入个人使用Yii开发的一些经验和教训。 通过本书,你将不仅仅了解到Yii怎么使用的实操技巧,还将掌握其实现的技术原理和内幕。 更为重要的是,接触...
1. **性能优化**:Yii 使用缓存机制,如APC、Memcached或数据库缓存,来提高应用性能。此外,其代码经过精心设计和优化,确保在处理大量请求时依然快速响应。 2. **MVC(模型-视图-控制器)架构**:Yii 实现了MVC...
在`safeUp()`方法中,可以使用Yii 2提供的数据库操作API来创建数据表,并定义字段。例如: ```php public function safeUp() { $tableOptions = null; if ($this->db->driverName === 'mysql') { // 设置表为...
接下来,我们将深入探讨Yii中表单的使用方法。 首先,创建模型是处理表单的第一步。模型(Model)在Yii中扮演着核心角色,它负责收集和验证用户输入的数据。对于临时性的数据,如登录表单,可以创建一个表单模型...
Yii2.0级基于Yii1.X完全重写的,不仅是小版本升级的升级。所以想要系统学习Yii2.0这个框架这套教程可以从实战项目带你入手。不错的学习YII框架的基础课程,电商系统的结构完整、框架资源太大,传百度网盘了,链接在...
### 安装Yii框架的方法及常见问题解决 #### 一、前言 Yii 是一个高性能的 PHP 框架,适用于开发 Web 应用程序。它不仅提供了丰富的功能集,如 MVC 架构支持、数据库抽象层、缓存机制等,还具有高度可配置性和扩展性...
2. 数据库支持:Yii 提供了强大的 ORM(对象关系映射)层,使得开发者可以使用 ActiveRecord 模式轻松操作数据库。这允许通过面向对象的方式处理 SQL 查询,提高了开发效率。 3. 配置管理:Yii 的配置系统允许...
Yii Framework API手册是针对开发者的一款详尽参考资料,它包含了Yii框架的所有核心组件、类库以及扩展的使用方法和接口信息。Yii是一个高性能、基于组件的PHP框架,用于开发Web 2.0应用。API(Application ...
通过分析这个yii新闻系统源码,开发者不仅能学习到Yii框架的基本用法,还能了解到如何构建一个完整的新闻管理系统,包括新闻的增删改查、权限控制、用户交互优化等多个方面,从而提升自己的PHP开发技能。
Yii1.1是其较早的一个版本,但即便如此,它仍然被许多开发者所使用,特别是那些需要维护旧项目的开发者。这个"yii1.1中文手册"是针对这个版本的详细文档,对于学习和理解Yii1.1框架的功能和工作原理至关重要。 Yii...
描述中的 "setFlash" 是Yii框架中用于设置Flash消息的一个方法。Flash消息是一种临时存储的信息,通常用于在用户完成某个操作后显示短暂的通知,例如成功保存数据或发生错误。这些消息只在当前会话中存在,并且在下...