Yii核心验证器api详解

时间:2021-05-25

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

核心验证器 Core Validators

前言

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

例如, 你可以使用别名 required 代替 yii\validators\RequiredValidator 类:

<?phppublic function rules(){ return [ [['email', 'password'], 'required'], ];}?>

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

接下来, 我们将讲解每种核心验证器的用法.

1. boolean 对错值

<?php[ // 检查是否 "selected" 是 0 或 1, 不管数据类型 ['selected', 'boolean'], // 检查是否 "deleted" 是一个 boolean 类型, 只能是 true 或则 false ['deleted', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true],]?>

上面检测是否是一个bool值.

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

注意: 因为数据提交通过HTML形式都是字符创, 一般你需要设置 strict 属性为 false.

2. captcha 验证码

<?php[ ['verificationCode', 'captcha'],]?>

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

3. compare 比较

<?php[ // 验证是否 "password" 属性和 "password_repeat"是否相等 ['password', 'compare'], // 验证 age >= 30 ['age', 'compare', 'compareValue' => 30, 'operator' => '>='],]?>

这个验证器比较指定的输入值和另一个值确保他们之间使用指定的操作符.

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

4. date 日期

<?php[ [['from_date', 'to_date'], 'date'],]?>

这个验证器检查输入的值是一个日期date, 时间time 或者datetime 以一个合适的形式. 可选的,他能转换输入值成为一个UNIX时间戳存储在一个通过timestampAttribute 指定的属性里.

format: 这个 date/time 是 http://php.net/manual/en/datetime.createfromformat.php 中声明的所有支持的格式

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

21. url 地址验证

<?php[ // 检查 "website" 是一个有效的 URL. 前置 "http://" 到 "website" 属性 // 如果它不具有一个URI模式 ['website', 'url', 'defaultScheme' => 'http'],]?>

validSchemes: 一个数组指定URI方案应被认为有效。默认为['HTTP','HTTPS'],意思是HTTP和HTTPS URL被认为是有效的。
defaultScheme: 默认URI方案要预先考虑到输入,如果它不具有方案的一部分。默认为null,意味着不修改输入值。
enableIDN:验证是否应考虑到IDN(国际化域名)。默认为false。需要注意的是,为了使用IDN验证您必须安装并启用国际PHP扩展,否则异常将会被抛出。

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

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章