在一个web应用中,可能有多个地方需要进行验证。比如“注册"时username、email、password这三项必须要填写,但是在“找回密码”时,可能只有email需要。所以,在Yii框架中,如果将这三项都设置为"required"那肯定是不可取的。
最好的解决办法莫过于建立不同的验证场景,通过"on"将一个场景与相应的规则相关联。来看一个User Model中rules()的例子:
public function rules() {
return array(
//Set required fields
//Applies to 'register' scenario
//Note 'on' property
array('username, password, password_repeat, email', 'required', 'on' => 'register'),
//Applies to 'recover' scenario
array('email', 'required', 'on' => 'recover'),
//Applies to all scenarios
array('username, password', 'length', 'max'=>35, 'min'=>3),
//This rule checks if the username is unique in the database in
//the 'register' scenario (we don't want it to check for uniqueness
//on the login page for instance)
array('username', 'unique', 'on' => 'register'),
//This rule applies to 'register' and 'update' scenarios
//Compares 'password' field to 'password_repeat' to make sure they are the same
array('password', 'compare', 'on' => 'register, update'),
);
}
通过注释我们能很好地理解这样定义的好处。现在我们可以通过调用CModel::validate()方法来为不同的场景进行验证:
if ($user->validate('register')) {
$user->save(false);
}
分享到:
相关推荐
标题 "YII动态模型(动态表名)支持" 指的是在Yii框架中实现动态模型和动态数据库表名的功能。Yii是一个高性能的PHP框架,适用于开发Web 2.0应用。动态模型允许开发者在运行时创建和使用不预先定义的数据库模型,这在...
本文将详细介绍YII框架中的数据验证规则,包括常用的验证器、验证规则的应用场景以及如何处理验证错误。 #### 二、YII框架数据验证基础知识 在YII框架中,数据验证主要通过`CModel`类及其子类实现。`CModel`提供了...
在“yii1.1中文文档”中,包含了Yii 1.1版本的详尽教程和参考指南。这个版本是Yii框架的一个稳定版本,尽管现在已经有了更新的2.0版本,但仍然有许多项目基于1.1版本运行。文档通常会涵盖框架的基础知识,如MVC...
本文实例讲述了Yii框架表单模型和验证用法。分享给大家供大家参考,具体如下: 表单模型CFormModel绝大部分继承CModelCModel,由于表模型数据不需要持久化,所以主要在验证操作上。下面以框架脚手架生成的网站登录为...
模型场景(Scenarios)是Yii模型的一个独特特性,允许开发者在不同的操作中应用不同的验证规则,从而提高代码的灵活性和可维护性。 首先,我们来看一下Yii中模型场景的基本概念。在默认情况下,模型的所有验证规则...
**Yii框架中文手册** Yii(读作"易")是一个高性能、基于组件的PHP框架,专为开发...在实际开发中,不断查阅并理解Yii中文手册,结合实例操作,将理论知识转化为实践经验,将有助于提升开发者在Yii框架下的编程技能。
待定中 多模型同时输入 显示数据 编撰中 格式化输出数据 待定中 分页(Pagination) 待定中 排序(Sorting) 编撰中 数据提供器 编撰中 数据小部件 编撰中 主题 安全 编撰中 认证(Authentication) 编撰中 授权...
在Yii框架中,数据模型验证器规则定义在模型的rules方法中。这个方法应该返回一个包含多个数组的数组,每个子数组代表一条验证规则。每条规则一般由三个部分组成:需要验证的属性、验证方法和相关参数。 下面详细...
yii2-save-relations-behavior, 验证并保存相关的Active Record 模型 Yii2 Active Record 保存关系行为自动验证和保存相关的Active Record 模型。 特性支持 hasMany() 和 hasOne() 关系现有的相关模型一起工作支持...
在这个"yii中blog完成后的例子"中,我们可以深入理解Yii框架的核心概念和技术,以及如何用它来构建一个博客系统。 1. **Yii框架基础**:Yii是基于组件、面向对象的PHP框架,它的设计灵感来源于其他著名框架如Ruby ...
安装完毕后,可以通过访问指定的检测脚本来验证服务器是否满足Yii框架的要求。此外,Yii框架建议不要将框架的PHP文件暴露给Web访问,以避免潜在的安全风险。 开发一个基本的Yii应用,开发者可以使用yiic工具来生成...
- 组件和类库:讲解Yii中的各种内置组件和类库,如缓存、邮件、表单验证等。 - 安全性:涉及认证、授权、安全过滤和防止XSS、CSRF攻击等内容。 - 性能优化:包括缓存策略、数据压缩、页面合并等提高性能的方法。 - ...
安全性方面,Yii提供了防止SQL注入、XSS攻击的安全工具,还支持身份验证和授权,确保应用的安全性。 模板部分,Yii框架支持自定义模板引擎,允许开发者创建和使用模板文件来定义页面布局。这有助于提高代码的可重用...
- **组件**:Yii中的所有对象都是组件,可以被配置和复用,增强了代码的灵活性。 - **数据库访问对象(DAO)和ActiveRecord**:提供简便的数据操作,ActiveRecord允许开发者通过对象操作数据库记录。 - **缓存**...
Yii有强大的安全防护机制,如输入验证、防止SQL注入、XSS攻击防御、CSRF保护等,确保应用的安全性。 9. **缓存管理** Yii内置了多种缓存策略,包括文件缓存、APC缓存、Memcached和Redis等,可以优化应用性能。 ...
Yii2框架中的验证器(Validator)是用于对用户输入的数据进行校验的工具,以保证数据的正确性和完整性。以下内容将详细介绍Yii2验证器的用法,功能、格式和注意事项。 首先,Yii2的验证器使用方法主要是通过模型的...
7. **表单和验证**:Yii提供方便的表单处理,包括自动数据验证,减少了开发者的工作量。 8. **Ajax支持**:通过AjaxHelper和JQuery插件,Yii轻松实现页面局部更新,提升用户体验。 9. **国际化和本地化**:Yii支持...
Yii提供了丰富的特性,包括MVC(模型-视图-控制器)、DAO/ActiveRecord、I18N/L10N、缓存、身份验证和基于角色的访问控制、脚手架、测试等,让开发者能够快速地构建高效、可扩展的Web应用。 这个"yii手册 中文 chm...