`

Yii CModel中rules验证规则[转]

 
阅读更多
array(

 array(‘username’, ‘required’),
 array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12),
 array(‘password’, ‘compare’, ‘compareAttribute’=>’password2′, ‘on’=>’register’),
 array(‘password’, ‘authenticate’, ‘on’=>’login’),

  array(‘Price’,’numerical’, ‘integerOnly’=>true),
);
public function rules()
{
  return array(
      array(‘title, content, status’, ‘required’),
      array(‘title’, ‘length’, ‘max’=>128),
      array(‘status’, ‘in’, ‘range’=>array(1,2,3)),
      array(‘tags’, ‘match’, ‘pattern’=>’/^[\w\s,]+$/’,
          ‘message’=>’Tags can only contain word characters.’),
      array(‘tags’, ‘normalizeTags’),
      array(‘title, status’, ‘safe’, ‘on’=>’search’),
  );
}预定义完整列表: 

 

 

yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError

经常用到的属性有 attributes,builtInvalidators,message,on这四个

下面是对应的验证类

required: CRequiredValidator

filter: CFilterValidator

match: CRegularExpressionValidator

email: CEmailValidator

url: CUrlValidator

unique: CUniqueValidator

compare: CCompareValidator

length: CStringValidator

in: CRangeValidator

numerical: CNumberValidator

captcha: CCaptchaValidator

type: CTypeValidator

file: CFileValidator

default: CDefaultValueValidator

exist: CExistValidator

boolean: CBooleanValidator

date: CDateValidator

safe: CSafeValidator

unsafe: CUnsafeValidator

1、CRequiredValidator – 必须值验证属性

requiredValue-mixed-所需的值

strict-boolean-是否比较严格

实例: array(‘username’, ‘required’), 不能为空

array(‘username’, ‘required’, ‘requiredValue’=>’lh’,’message’=> ‘usernmae must be lh’), 这个值必须为lh,如果填其他值还是会验证不过

array(‘username’, ‘required’, ‘requiredValue’=>’lh’, ‘strict’=>true), 严格验证 还可以在后面加 ‘message’=>”,’on’=>这些

2、CFilterValidator 过滤验证属性

filter – 方法名 (调用用户自己定义的函数)

实例:

array(‘username’, ‘test’) function test() { $username = $this->username; if($username != ‘lh’){ $this->addError(‘username’, ‘username must be lh’); } }

使用这个方法如果你还在array里面写message=>”,给出的提示信息还是你的test里面的。也就是以test里面的错误信息为准

3、CRegularExpressionValidator -

正则验证属性allowEmpty – 是否为空(默认true)

not-是否反转的验证逻辑(默认false) pattern – 正则表达式匹配实例:

// 匹配a-z array(‘username’, ‘match’, ‘allowEmpty’=>true, ‘pattern’=>’/[a-z]/i’,’message’=>’必须为字母’),

// 匹配不是a-z array(‘username’, ‘match’, ‘allowEmpty’=>true, ‘not’=>true, ‘pattern’=>’/[a-z]/i’,’message’=>’必须不是字母’),

4、CEmailValidator –邮箱验证属性:

allowEmpty – 是否为空

allowName – 是否允许在电子邮件地址的名称

checkMx – 是否检查电子邮件地址的MX记录

checkPort – 是否要检查端口25的电子邮件地址

fullPattern – 正则表达式,用来验证电子邮件地址与名称的一部分

pattern – 正则表达式,

用来验证的属性值实例: array(‘username’, ‘email’, ‘message’=>’必须为电子邮箱’, ‘pattern’=>’/[a-z]/i’),

5、CUrlValidator – url验证属性:

allowEmpty – 是否为空

defaultScheme – 默认的URI方案

pattern – 正则表达式

validSchemes – 清单应视为有效的URI计划。

实例:

array(‘username’, ‘url’, ‘message’=>’must url’),

array(‘username’, ‘url’, ‘defaultScheme’=>’http://www.baidu.com’),

6、CUniqueValidator – 唯一性验证属性:

allowEmpty – 是否为空

attributeName – 属性名称

caseSensitive – 区分大小写

className – 类名

criteria – 额外的查询条件

实例:

array(‘username’, ‘unique’, ‘message’=>’该记录存在’),

array(‘username’, ‘unique’, ‘caseSensitive’=>false, ‘message’=>’该记录存在’),

7、CCompareValidator – 比较验证属性:

allowEmpty – 是否为空

compareAttribute – 需要比较的属性

compareValue -比较的值

operator – 比较运算符

strict – 严格验证(值和类型都要相等)

实例: // 与某个值比较 array(‘username’, ‘compare’, ‘compareValue’=>’10′, ‘operator’=>’>’, ‘message’=>’必须大于10′),

// 与某个提交的属性比较 array(‘username’, ‘compare’, ‘compareAttribute’=>’password’, ‘operator’=>’>’, ‘message’=>’必须大于password’),

8、CStringValidator – 字符串验证属性:

allowEmpty – 是否为空

encoding – 编码

is – 确切的长度

max – 最大长度

min – 最小长度

tooLong – 定义值太大的错误

tooShort – 定义最小长度的错误

实例: array(‘username’, ‘length’, ‘max’=>10, ‘min’=>5, ‘tooLong’=>’太长了’, ‘tooShort’=>’太短了’),

array(‘username’, ‘length’, ‘is’=>5, ‘message’=>’长度必须为5′),

9、CRangeValidator – 在某个范围内属性:

allowEmpty – 是否为空

not – 是否反转的验证逻辑。

range – array范围

strict – 严格验证(类型和值都要一样)

实例: array(‘username’, ‘in’, ‘range’=>array(1,2,3,4,5), ‘message’=>’must in 1 2 3 4 5′),

array(‘username’, ‘in’, ‘not’=>true, ‘range’=>array(1,2,3,4,5), ‘message’=>’must not in 1 2 3 4 5′),

10、CNumberValidator – 数字验证属性:

allowEmpty – 是否为空

integerOnly – 整数

integerPattern – 正则表达式匹配整数

max – 最大值

min – 最小值

numberPattern – 匹配号码

tooBig – 值太大时的错误提示

tooSmall – 值太小时的错误提示

实例: array(‘username’, ‘numerical’, ‘integerOnly’=>true, ‘message’=>’must be int’),

array(‘username’, ‘numerical’, ‘integerOnly’=>true, ‘message’=>’must be int’, ‘max’=>100, ‘min’=>10, ‘tooBig’=>’is too big’, ‘tooSmall’=>’is too small’),

11、CCaptchaValidator – 验证码验证属性:

allowEmpty – 是否为空

caseSensitive – 区分大小写

12、CTypeValidator – 类型验证属性:

allowEmpty – 是否为空

dateFormat – 日期应遵循的格式模式(‘MM/dd/yyyy’)

datetimeFormat – 日期时间应遵循的格式模式(‘MM/dd/yyyy hh:mm’)

timeFormat – 时间应遵循的格式模式(‘hh:mm’)

type – 类型 ‘string’, ‘integer’, ‘float’, ‘array’, ‘date’, ‘time’ and ‘datetime’

实例: array(‘username’, ‘type’, ‘dateFormat’=>’MM/dd/yyyy’, ‘type’=>’date’),

13、CFileValidator – 文件验证属性:

allowEmpty – 是否为空

maxFiles – 最大文件数

maxSize – 文件的最大值

minSize – 最小值

tooLarge – 太大时的错误信息

tooMany – 太多时的错误信息

tooSmall – 太小时的错误信息

types – 允许的文件扩展名

wrongType – 扩展名错误时给出的错误信息

14、CDefaultValueValidator – 默认值属性:

setOnEmpty – 设置为空

value – 默认值

实例: array(‘username’, ‘default’, ‘setOnEmpty’=>true, ‘value’=>’lh’),

15、CExistValidator – 是否存在属性:

allowEmpty = 是否为空

attributeName – 属性名称

className – 类名

criteria – 标准

16、CBooleanValidator – 布尔类型验证属性:

allowEmpty – 是否为空

falseValue – 错误状态的值

strict – 严格验证

trueValue – 真实状态的值

实例: array(‘username’, ‘boolean’, ‘trueValue’=>1, ‘falseValue’=>-1, ‘message’=>’the value must be 1 or -1′),

17、CDateValidator – 日期验证属性:

allowEmpty – 是否为空

format – 日期值应遵循的格式模式

timestampAttribute – 接收解析结果的属性名称

实例: array(‘username’, ‘date’, ‘format’=>’MM-dd-yyyy’,’message’=>’must be MM-dd-yyyy’),

分享到:
评论

相关推荐

    Yii CModel中rules验证规格

    Yii的CModel中rules方法中各項參數的說明(僅限於yii1)

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

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

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

    Yii的表单模型一般继承自CModel,其设计的核心在于表单数据不需要持久化存储,而验证则是一个不可或缺的部分。在Yii中,表单模型通常用于处理Web表单的输入数据,并对这些数据进行验证。 Yii中的验证器是用于数据...

    yii用户注册表单验证实例

    Yii框架中的CActiveRecord提供了`rules`方法来设置这些规则,常见的验证器包括`CRequiredValidator`(非空验证)、`CStringValidator`(字符串验证)、`CEmailValidator`(邮箱格式验证)等。 **视图层(View)** 视...

    Yii基于CActiveForm的Ajax数据验证用法示例

    在模型类中,我们需要定义`rules()`方法,这个方法返回一个二维数组,其中每个子数组定义了一个验证规则。例如,我们可以定义一个规则来确保用户名是唯一的: ```php public function rules() { return array( ...

    Yii中表单用法实例详解

    模型(Model)在Yii中扮演着核心角色,它负责收集和验证用户输入的数据。对于临时性的数据,如登录表单,可以创建一个表单模型(CFormModel的子类),而对于需要持久化到数据库的数据,可以使用Active Record模型。...

    yii快速入门教程--一个非常好的php框架

    - **声明验证规则**: 使用`rules()`方法定义数据验证规则。 - **安全的特性赋值**: 使用`safeAttributes()`方法确定哪些属性可以被安全地赋值。 - **触发验证**: 在模型保存前触发验证过程。 - **提取验证错误**: ...

    yii-ievalidator:州注册验证器

    //小写或大写两个字符 class example extends CModel { //[....] public function rules () { return array ( //[....] array ( 'inscricaoEstadual' , 'ext.validators.IeValidator' , 'estado' =>

    Yii使用Captcha验证码的方法

    本文实例讲述了Yii使用Captcha验证码的方法。分享给大家供大家参考,具体如下: 详细代码可参考:yii自带的示例代码post项目,里面有一个contact表单用到了验证码. 1. Model: 将验证码加入UserLogin的一个属性: ...

    yii使用activeFileField控件实现上传文件与图片的方法

    在模型(Model)的 `rules` 方法中,你需要定义验证规则来确保上传的是图片,以及限制图片大小。例如: ```php array('BookImg', 'file', 'allowEmpty' => true, 'types' => 'jpg, gif, png', 'maxSize' => 1024 ...

    YII2.0之Activeform表单组件用法实例

    在模型类中,可以定义规则来验证输入数据。例如,对于用户名和密码,我们可以设置规则以确保它们非空且长度在特定范围内: ```php public function rules() { return [ [['username', 'password'], 'required'], ...

    Yii2创建表单(ActiveForm)方法详解

    在模型中,通过定义规则(rules)来指定输入验证,例如`[['username', 'password'], 'required']`表示用户名和密码是必填的。 7. **关于每个field容器样式的属性**: 可以通过`template`和`options`等属性调整每...

    Yii框架实现图片上传的方法详解

    在Yii中,图片上传通常与ActiveRecord模型相结合,用于处理上传的文件验证和存储,控制器处理请求并调用模型方法,而视图则提供用户交互界面。 首先,我们来看模型(Model)部分。在提供的示例中,`Upload` 类继承...

    Yii框架实现的验证码、登录及退出功能示例

    在`IndexForm`模型中,`rules()`方法中添加了`array('verifyCode', 'captcha')`规则,确保用户在提交表单时输入正确的验证码。`allowEmpty`参数允许在不启用验证码的情况下提交表单,而`message`定义了错误提示信息...

    Yii框架上传图片用法总结

    在模型层面,首先要通过rules()方法定义规则,对于图片上传字段,将对应字段设置为file类型。这允许我们为上传的文件进行类型、大小的校验。如指定允许上传的文件类型(jpg, png, gif等)和最大文件大小(例如10MB)...

    php易框架cheatsheet

    - `rules()`:定义验证规则。 - `validate($scenario = '')`:执行验证过程。 - **Events**: - `afterValidate($scenario)`:验证成功后触发的事件。 - `beforeValidate($scenario)`:验证前触发的事件。 - **...

Global site tag (gtag.js) - Google Analytics