先看一下验证器的使用。

18. string 字符串验证

required——必填这个用来检查属性值是否为空。(yiivalidatorsRequiredValidator)

 null], [['from_date', 'to_date'], 'date'],],?>

trim——裁边这个是对属性值进行加工处理的。只是去掉字符串两侧的空格、或指定的字符串。(yiivalidatorsFilterValidator)

4. date 日期

Yii2已经内置了一些常用的验证器。所有的验证器都从基类yiivalidatorsValidator继承实现。我大概总结下有这么几类。

例如, 你可以使用别名 required 代替 yiivalidatorsRequiredValidator
类:

string——字符串对属性值进行长度判断,如最大长度、最短长度等。(yiivalidatorsStringValidator)

检查输入的值是否存在于给定的系列值的列表中.

in——包含用来检测属性值是否包含在指定的数组中。(yiivalidatorsRangeValidator)

12. in 在那一个数组里面的值

integer——整数用来检测属性值是否为整数,以及最大、最小值检测等。(yiivalidatorsNumberValidator)

这个验证器检查输入的值是一个字符串且长度在确定的值的范围里。

如上所示,验证器主要使用在rules里面,对当前model里面的属性值进行验证以检查是否满足某种要求。

pattern: 输入值必须匹配的规则. 属性必须设置,否则将会抛出异常.not:
是否反转验证结果. 默认 false.

file——文件这个主要是对上传的文件进行验证,如格式、大小等。(yiivalidatorsFileValidator)

8. exist 是否存在

常用验证器:

如果输入的是可选的,你也可能要添加一个默认值滤波器除了日期验证,以确保空输入存储为NULL。否则你可能最终得到的日期像日期选择器的输入字段在0000-00-00
或 您的数据库1970-01-01.

url——URL用来判断属性值是否是正确的url地址。(yiivalidatorsUrlValidator)

1. boolean 对错值

filter——过滤器这个是对属性值进行加工处理的。如对属性值加前缀、替换特定的字符串等等。(yiivalidatorsFilterValidator)

compareAttribute:
属性的名字即将会和谁比较.当验证器被用来验证一个属性的时候,
他会和属性名字相同 但带有后缀 _repeat的属性相比较. 例如,
如果要验证的属性名是 password, 那么默认对比的属性名就是 password_repeat
你可以指定你想要的值.compareValue: 一个和输入值比较的常量值. 当 property
和 compareAttribute 属性被同时指定的时候, 这个值将优先.operator:
比较的操作符. 默认是 ==, 即输入值和 compareAttribute 或 compareValue
值相等的时候才会成功.支持下面这些操作符: ==、===、!=、!==、>、>=、

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

 'png, jpg', 'minWidth' => 100, 'maxWidth' => 1000, 'minHeight' => 100, 'maxHeight' => 1000, ],]?>

exist——存在用来检测在数据表中是否已经存在此属性值。(yiivalidatorsExistValidator)

 null], // 设置 "country" 为 "USA" 如果他是空的 ['country', 'default', 'value' => 'USA'], // 分配 "from" 和 "to" 分别加3天和6天, 如果他们是空的话 [['from', 'to'], 'default', 'value' => function  { return date('Y-m-d', strtotime($attribute === 'to' ? '+3 days' : '+6 days')); }],]?>

unique——唯一性这个和exist差不多,用来检测值是否是唯一。(yiivalidatorsUniqueValidator)

这个 yiivalidatorsValidator::$builtInValidators
属性生命所有支持的验证器的别名.

对值进行函数处理:

检查是否是一个有效的上传文件。

每个属性都可以有多个验证器,如上面的password使用了
required和string两个验证器。

allowName: 检查名字是否允许在邮箱中出现 (e.g. John Smith ). 默认为
false.checkDNS,是否检查电子邮件的域名是否存在,是否有任何一个A或MX记录。请注意,这可能检查由于临时DNS问题失败,即使电子邮件地址实际上是有效的。默认为false。enableIDN,验证过程是否应考虑到IDN。默认为false。需要注意的是,为了使用IDN验证您必须安装并启用国际PHP扩展,或异常将被抛出。

public function rules(){ return [ [['email', 'password'], 'required'], ['password', 'string', 'min'=>6], ];}

本文实例讲述了Yii核心验证器api。分享给大家供大家参考,具体如下:

safe——安全这个不进行验证,仅仅用来指定属性值是安全的。(yiivalidatorsSafeValidator)

核心验证器 Core Validators

数字相关:

= 30 ['age', 'compare', 'compareValue' => 30, 'operator' => '>='],]?>

本文实例讲述了Yii2验证器用法。分享给大家供大家参考,具体如下:

如果这个值没有设置, 他会自动取值
Yii::$app->formatter->dateFormat.timestampAttribute:
属性名用来存储转换将输入的日期或时间.
也可以是相同的属性名作为被验证过的. 如果是这种情况,
原始的值将会被时间戳重写. 你可以看看 “如何处理日期选择器 DatePicker”
用例子.

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

如果需要验证的属性为多个可用数组,如果为一个属性可用字符串也可用数组来表示。

7. email 邮箱验证

判断比较:

21. url 地址验证

image——图片这个和上面的file验证器差不多,不过是专门用来验证图片的。(yiivalidatorsImageValidator)

range: 给定范围值的列表.strict:
输入值和给定值之间的比较结果是否应严格。默认为false。not:
验证结果是否应该被反转。默认为false。当此属性设置为true,验证检查,输入的值不能是给定列表的值中.allowArray:
是否允许输入值是一个数组。如果这是真的,并输入值是一个数组,数组中的每个元素必须值的给定列表中找到,或验证会失败。

match——正则表达式这个就比较强大了,用来检测属性值是否匹配给出的正则。上面所列出的基本都可以用这个实现。(yiivalidatorsRegularExpressionValidator)

 ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024],]?>

书写格式为:[需要验证的属性,验证器名称,验证器参数]。

extensions: 允许上传的文件类型列表.他可以是一个数组
或者是一个以逗号分割的字符串. 扩展名不区分大小写,默认为 null,
意味着所有的文件扩展名是允许的.mimeTypes:
允许上传的文件资源的媒体类型。他可以是一个数组
或者是一个以逗号或空格分割的字符串 (如. “image/jpeg, image/png”).
不区分大小写,默认为 null, 意味着所有的文件扩展名是允许的.minSize:
上传文件的最小字节数 未设不做判断.maxSize: 上传文件的最大字节数
未设不做判断.maxFiles: 最大的上传文件数 默认为 1,
意味着只能上传单个文件对于单个文件上传框. 如果大于 1, 那么
input必须是一个 array 包含至多 maxFiles
数量的上传文件.checkExtensionByMimeType: 是否检查文件的扩展名.
如果由MIME类型检查所产生的扩展不同于上传的文件扩展名,该文件将被认为是无效的。默认值为true,意思进行这样的检查。FileValidator
和 yiiwebUploadedFile 一起使用. .

boolean——布尔型用来检查属性的值是否为布尔值。(yiivalidatorsBooleanValidator)

这个验证器检查输入的值能否被找到在在对应的表的列值里,他只会在 Active
Record model 模型的属性里起作用.

captcha——验证码这个主要是在界面使用验证码的时候对验证码进行验证的。(yiicaptchaCaptchaValidator)

minWidth: 最小的宽度 不设无限制.maxWidth: 最大的宽度
不设无限制.minHeight: 最小的高度 不设无限制.maxHeight: 最大的高度
不设无限制.

date——日期检验属性值是否为正确的日期格式。(yiivalidatorsDateValidator)

这个验证器通常和yiicaptchaCaptchaAction 以及yiicaptchaCaptcha
一起使用以确保输入的是相同的验证码 通过 CAPTCHA 组件.caseSensitive:
是否验证码需要区分大小写. 默认为 false.captchaAction: 默认的验证码的
CAPTCHA action 生成 CAPTCHA image的路径. 默认为
‘site/captcha’.skipOnEmpty: 输入为空的时候是否跳过验证. 默认false, 即
input 输入是必须的.

double——浮点用来检测属性值是否为浮点数,即小数。(yiivalidatorsNumberValidator)

2. captcha 验证码

compare——比较用来对两个属性值进行比较,如相等、大于、小于比较等。(yiivalidatorsCompareValidator)

小提示: 去空格直接用trim验证.

number——数字这个和上面的double完全相同,只是用了2个名称。(yiivalidatorsNumberValidator)

17. safe 标记输入是安全属性

格式相关:

20. unique 唯一性验证

email——邮件检测属性值是否是正确的电子邮件格式。(yiivalidatorsEmailValidator)

这个验证器不验证数据. 当他们为空的时候.分配给属性值。

验证器使用格式:

targetClass: 用来寻找输入值验证的 Active Record 类名. 如果未设置,
默认使用当前设置的模型类.targetAttribute:
应该用于验证输入值的存在在targetClass的属性的名称。如果没有设置,将使用目前正在验证的属性的名称。可以使用阵列来验证多列的存在的同时。数组的值是将被用于验证存在的属性,而数组键是其值要验证的属性。如果键和值都是一样的,你可以指定值.filter:
additional filter to be applied to the DB query used to check the
existence of the input value. This can be a string or an array
representing the additional query condition (refer to
yiidbQuery::where() on the format of query condition), or an
anonymous function with the signature function , where $query is the
Query object that you can modify in the function.allowArray:
是否允许输入的值是一个array.默认 false. 若果属性是 true 而且输入是一个
array, 那么熟这里的每一个元素都必须存在在指向的目标列里.
注意这个属性不能被设置成true 如果你设置验证多列通过设置 targetAttribute
为一个 array.

上传文件验证:

filter: 一个php回调函数定义一个filter. 他可能是一个全局函数的名字,
一个匿名函数等等. 函数的原型一定是这个属性必须设置.

其它:

targetClass:
应该是被用于验证查找输入值的活动记录类的名字。如果没有设置,将要使用的类目前正在验证该模型的.targetAttribute:
应该用来验证输入值的唯一性在targetClass的属性的名称。如果没有设置,将使用目前正在验证的属性的名称。可以使用阵列来验证多列的唯一性的同时。数组的值是将被用于验证唯一性的属性,而数组键是其值要验证的属性。如果键和值都是一样的,你可以指定的值。filter:
a额外的过滤器被应用到用于检查输入值的唯一性的数据库查询。这可以是一个字符串或代表附加查询条件的数组(参考
yiidbQuery::where, 或者是一个匿名函数像: function ,
其中$query是你可以在函数修改查询对象。

default——默认值这个是用来给属性设置默认值的。如当属性值为null的时候,给它设置为
空的默认值。(yiivalidatorsDefaultValueValidator)

Yii 提供了一系列常用的核心 validators, 你可在yiivalidators namespace
中找到. 不用使用长的验证器类名, 你可以使用别名代替他们.

 [4, 24]],]?>

trueValue: 代表true时的值. 默认为 ‘1’.falseValue: 代表 false 时的值.
默认为 ‘0’.strict: 是否输入框中的值必须匹配 设置的 trueValue 和
falseValue. 默认为 false.

 'boolval'],['property', 'filter', 'filter' => 'intval'],?>

skipOnArray: 当输入只是一个数组的时候是否跳过.默认是 false.
请注意,如果过滤器无法处理数组输入,您应该将此属性设置为true。否则,可能会发生一些PHP错误.

相关文章