`

yii,model内验证规则使用方法

    博客分类:
  • PHP
 
阅读更多

先看一下例子: 

public function rules()    
{
        return array(
            array('username, password', 'required'),
            array('rememberMe', 'boolean'),
            array('password', 'authenticate'),
        );
    }
 
    public function authenticate($attribute,$params)
    {
        $this->_identity=new UserIdentity($this->username,$this->password);
        if(!$this->_identity->authenticate())
            $this->addError('password','错误的用户名或密码。');
    }

 

上述代码指定:username 和 password 为必填项, password 应被验证(authenticated),rememberMe 应该是一个布尔值。

 

rules() 返回的每个规则必须是以下格式:

 

array('AttributeList', 'Validator', 'on'=>'ScenarioList', ...附加选项)

 其中 AttributeList(特性列表) 是需要通过此规则验证的特性列表字符串,每个特性名字由逗号分隔;Validator(验证器) 指定要执行验证的种类;on 参数是可选的,它指定此规则应被应用到的场景列表; 附加选项是一个名值对数组,用于初始化相应验证器的属性值。

 

预定义的验证器别名的完整列表:

 

  • booleanCBooleanValidator 的别名, 确保特性有一个 CBooleanValidator::trueValue 或CBooleanValidator::falseValue 值。

  • captchaCCaptchaValidator 的别名,确保特性值等于 CAPTCHA 中显示的验证码。

  • compareCCompareValidator 的别名,确保特性等于另一个特性或常量。

  • emailCEmailValidator 的别名,确保特性是一个有效的Email地址。

  • defaultCDefaultValueValidator 的别名,指定特性的默认值。

  • existCExistValidator 的别名,确保特性值可以在指定表的列中可以找到。

  • fileCFileValidator 的别名,确保特性含有一个上传文件的名字。

  • filterCFilterValidator 的别名,通过一个过滤器改变此特性。

  • inCRangeValidator 的别名,确保数据在一个预先指定的值的范围之内。

  • lengthCStringValidator 的别名,确保数据的长度在一个指定的范围之内。

  • matchCRegularExpressionValidator 的别名,确保数据可以匹配一个正则表达式。

  • numericalCNumberValidator 的别名,确保数据是一个有效的数字。

  • requiredCRequiredValidator 的别名,确保特性不为空。

  • typeCTypeValidator 的别名,确保特性是指定的数据类型。

  • uniqueCUniqueValidator 的别名,确保数据在数据表的列中是唯一的。

  • urlCUrlValidator 的别名,确保数据是一个有效的 URL。

     

    下面我们列出了几个只用这些预定义验证器的示例:

     

    // 用户名为必填项
    array('username', 'required'),
    // 用户名必须在 3 到 12 个字符之间
    array('username', 'length', 'min'=>3, 'max'=>12),
    // 在注册场景中,密码password必须和password2一致。
    array('password', 'compare', 'compareAttribute'=>'password2', 'on'=>'register'),
    // 在登录场景中,密码必须接受验证。
    array('password', 'authenticate', 'on'=>'login'),
     

    大家可能比较郁闷一点,这么多预定义的验证类,他们的属性都有哪些呢?比如上面红色部门,我怎么确定每个验证器类要用到哪些?其实很简单。

    点开每一个类,都会看到类似图片上的东西,点击Properties,会看到验证器类的全部属性,只要看懂他们什么意思就行了。

  • 大小: 1.4 KB
分享到:
评论

相关推荐

    YII框架数据验证规则

    ### YII框架数据验证规则详解 #### 一、引言 在Web开发中,数据验证是确保应用程序安全性和用户体验的关键步骤之一。YII框架作为一款高效、安全且专业的PHP Web开发框架,提供了丰富的数据验证机制。本文将详细...

    Yii2框架自定义验证规则操作示例

    2. 自定义验证规则的实现:开发者可以通过在模型(Model)中定义验证规则来实现自定义验证。通过rules()方法可以定义需要验证的属性以及对应的验证方法。例如,在提供的代码片段中,自定义验证方法...

    yii2中的rules 自定义验证规则详解

    `rules` 是 Yii2 中用于定义模型(Model)验证规则的关键特性,它允许我们自定义复杂的验证逻辑。 在描述的场景中,我们需要处理两个字段 A 和 B。如果 A 的值为 1,则 B 必须有值;而当 A 的值为 2 时,B 可以为空...

    yii实现model添加默认值的方法(2种方法)

    在Yii框架中,Model的rules()方法用于定义数据规则,这些规则将用于验证模型数据的合法性。同时,rules()方法还支持一些特殊的规则,其中之一就是default,用来给未提交的字段赋予默认值。 例如,在一个订单模型中...

    yii2 在控制器中验证请求参数的使用方法

    写api接口时一般会在控制器中简单...有么有“一劳永逸”的做法,像在 Model 中通过 rules 方法定义验证规则并实现快速验证的呢?有! 使用方法(实现效果) namespace frontend\controllers\api; use yii\web\Cont

    yii-1.1.0.r1700.zip_yii_yii1.0 model结构

    - **验证规则(Validation Rules)**:`rules()`方法定义的数据验证规则确保了输入数据的准确性和安全性。 - **业务逻辑**:模型类是实现业务逻辑的主要地方,例如计算、数据转换等。 了解和掌握Yii的模型结构对于...

    Yii使用ajax验证显示错误messagebox的解决方法

    在Yii框架中,使用Ajax进行表单验证时,能够实现在客户端即时反馈用户输入错误的功能。对于想要在用户提交数据时通过Ajax显示错误信息的需求,Yii框架提供了一套内置的解决方案。不过,可能会遇到一些特殊情况,比如...

    PHP yii实现model添加默认值的方法(两种方法)

    `rules()`方法是Yii中用于定义模型验证规则的地方,但也可以用来设置默认值。通过在`rules()`方法中定义一个规则,我们可以为特定的属性设置默认值。例如: ```php public function rules() { return array( // ....

    Yii中Model(模型)的创建及使用方法

    在这个例子中,`LoginForm`定义了两个属性`username`和`password`,并使用`rules()`方法设置验证规则。`authenticate`方法实现了自定义验证逻辑,检查用户名和密码是否匹配。 接下来,我们讨论CActiveRecord模型,...

    详解Yii2 rules 的验证规则

    在实际应用中,这些验证规则被定义在模型(Model)类的`rules`方法中,以数组的形式返回。例如: ```php public function rules() { return [ // 在场景 'create' 和 'update' 中应用 [['email', 'password'], '...

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

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

    在yii中新增一个用户验证的方法详解

    在Yii框架中,新增用户验证方法是为了满足特定的业务需求,比如在同一个应用中区分后台管理与前台会员中心的用户验证。在这种情况下,需要创建独立的登录页面,并将用户信息分别存储在不同的Cookie或Session中。本文...

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

    总之,Yii框架表单模型和验证用法通过规则定义、自定义验证器以及内置验证器,为开发者提供了一套完整、灵活的数据验证机制。它不仅可以减少重复代码,提高开发效率,还可以保证数据的完整性和准确性,是构建高效Web...

    Yii2实现自定义独立验证器的方法

    以上就是Yii2实现自定义独立验证器的基本过程,通过这种机制,开发者可以根据具体的应用场景编写各种灵活的验证规则,满足业务的多样性需求。 在文档的后续部分,还提到了Yii框架相关的其他内容,比如Yii框架入门、...

    yii示例-下拉框-最新的yii框架

    Yii2内置了强大的验证规则,可以在模型中定义,确保用户输入的数据符合预期格式。例如,如果下拉框必须有选择,可以添加`required`规则。 9. **最佳实践** - 使用Yii2的`asArray()`方法从数据库查询中获取数据,...

    yii2简单注册登录

    在Yii2中,可以使用内置的验证规则(如`yii\base\Model::rules()`)来验证用户输入,比如邮箱和密码的格式。密码通常会用哈希算法(如Bcrypt或Argon2)进行加密存储,以提高安全性。 3. **登录功能**:登录过程包括...

    YII框架中文手册

    3. **Extension管理**:Yii社区提供了大量高质量的扩展,如图库管理、支付接口等,可通过Yii的扩展管理工具轻松安装和使用。 4. **RESTful Web服务**:Yii支持构建RESTful API,方便移动应用和其他服务与Web应用...

Global site tag (gtag.js) - Google Analytics