`

YII中的模型验证

    博客分类:
  • Yii
 
阅读更多

在一个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框架中实现动态模型和动态数据库表名的功能。Yii是一个高性能的PHP框架,适用于开发Web 2.0应用。动态模型允许开发者在运行时创建和使用不预先定义的数据库模型,这在...

    YII框架数据验证规则

    本文将详细介绍YII框架中的数据验证规则,包括常用的验证器、验证规则的应用场景以及如何处理验证错误。 #### 二、YII框架数据验证基础知识 在YII框架中,数据验证主要通过`CModel`类及其子类实现。`CModel`提供了...

    Yii框架表单模型和验证用法

    本文实例讲述了Yii框架表单模型和验证用法。分享给大家供大家参考,具体如下: 表单模型CFormModel绝大部分继承CModelCModel,由于表模型数据不需要持久化,所以主要在验证操作上。下面以框架脚手架生成的网站登录为...

    yii框架中文文档、yii中文手册教程

    在“yii1.1中文文档”中,包含了Yii 1.1版本的详尽教程和参考指南。这个版本是Yii框架的一个稳定版本,尽管现在已经有了更新的2.0版本,但仍然有许多项目基于1.1版本运行。文档通常会涵盖框架的基础知识,如MVC...

    关于Yii中模型场景的一些简单介绍

    模型场景(Scenarios)是Yii模型的一个独特特性,允许开发者在不同的操作中应用不同的验证规则,从而提高代码的灵活性和可维护性。 首先,我们来看一下Yii中模型场景的基本概念。在默认情况下,模型的所有验证规则...

    YII框架中文手册

    **Yii框架中文手册** Yii(读作"易")是一个高性能、基于组件的PHP框架,专为开发...在实际开发中,不断查阅并理解Yii中文手册,结合实例操作,将理论知识转化为实践经验,将有助于提升开发者在Yii框架下的编程技能。

    Yii2中文手册(中文教程完整版)

    待定中 多模型同时输入 显示数据 编撰中 格式化输出数据 待定中 分页(Pagination) 待定中 排序(Sorting) 编撰中 数据提供器 编撰中 数据小部件 编撰中 主题 安全 编撰中 认证(Authentication) 编撰中 授权...

    Yii数据模型中rules类验证器用法分析

    在Yii框架中,数据模型验证器规则定义在模型的rules方法中。这个方法应该返回一个包含多个数组的数组,每个子数组代表一条验证规则。每条规则一般由三个部分组成:需要验证的属性、验证方法和相关参数。 下面详细...

    yii2-save-relations-behavior, 验证并保存相关的Active Record 模型.zip

    yii2-save-relations-behavior, 验证并保存相关的Active Record 模型 Yii2 Active Record 保存关系行为自动验证和保存相关的Active Record 模型。 特性支持 hasMany() 和 hasOne() 关系现有的相关模型一起工作支持...

    yii中blog完成后的例子

    在这个"yii中blog完成后的例子"中,我们可以深入理解Yii框架的核心概念和技术,以及如何用它来构建一个博客系统。 1. **Yii框架基础**:Yii是基于组件、面向对象的PHP框架,它的设计灵感来源于其他著名框架如Ruby ...

    yii框架中文手册教程

    安装完毕后,可以通过访问指定的检测脚本来验证服务器是否满足Yii框架的要求。此外,Yii框架建议不要将框架的PHP文件暴露给Web访问,以避免潜在的安全风险。 开发一个基本的Yii应用,开发者可以使用yiic工具来生成...

    yii1.1中文手册

    - 组件和类库:讲解Yii中的各种内置组件和类库,如缓存、邮件、表单验证等。 - 安全性:涉及认证、授权、安全过滤和防止XSS、CSRF攻击等内容。 - 性能优化:包括缓存策略、数据压缩、页面合并等提高性能的方法。 - ...

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

    安全性方面,Yii提供了防止SQL注入、XSS攻击的安全工具,还支持身份验证和授权,确保应用的安全性。 模板部分,Yii框架支持自定义模板引擎,允许开发者创建和使用模板文件来定义页面布局。这有助于提高代码的可重用...

    Yii框架数据模型的验证规则rules()被执行的方法

    本文将详细解读Yii框架中数据模型验证规则rules()的实现方法及其运行机制,帮助开发者有效地完成用户注册等表单验证。 在Yii框架中,模型的验证规则定义在模型类中的rules()方法里。这个方法通过返回一个数组来定义...

    YII-1.1.8中文手册

    - **组件**:Yii中的所有对象都是组件,可以被配置和复用,增强了代码的灵活性。 - **数据库访问对象(DAO)和ActiveRecord**:提供简便的数据操作,ActiveRecord允许开发者通过对象操作数据库记录。 - **缓存**...

    Yii快速入门教程+2.0中文手册

    Yii有强大的安全防护机制,如输入验证、防止SQL注入、XSS攻击防御、CSRF保护等,确保应用的安全性。 9. **缓存管理** Yii内置了多种缓存策略,包括文件缓存、APC缓存、Memcached和Redis等,可以优化应用性能。 ...

    yii framework 中文完全手册

    7. **表单和验证**:Yii提供方便的表单处理,包括自动数据验证,减少了开发者的工作量。 8. **Ajax支持**:通过AjaxHelper和JQuery插件,Yii轻松实现页面局部更新,提升用户体验。 9. **国际化和本地化**:Yii支持...

    yii手册 中文 chm格式

    Yii提供了丰富的特性,包括MVC(模型-视图-控制器)、DAO/ActiveRecord、I18N/L10N、缓存、身份验证和基于角色的访问控制、脚手架、测试等,让开发者能够快速地构建高效、可扩展的Web应用。 这个"yii手册 中文 chm...

Global site tag (gtag.js) - Google Analytics