yii 验证rules 分类: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’=& gt;’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 – 接收解析结果的属性名称
相关推荐
- **声明验证规则**: 使用`rules()`方法定义数据验证规则。 - **安全的特性赋值**: 使用`safeAttributes()`方法确定哪些属性可以被安全地赋值。 - **触发验证**: 在模型保存前触发验证过程。 - **提取验证错误**: ...
Yii框架中的CActiveRecord提供了`rules`方法来设置这些规则,常见的验证器包括`CRequiredValidator`(非空验证)、`CStringValidator`(字符串验证)、`CEmailValidator`(邮箱格式验证)等。 **视图层(View)** 视...
首先,Yii2的验证器使用方法主要是通过模型的rules()方法来定义的。rules()方法返回一个数组,其中包含了针对模型属性的验证规则。验证规则的基本格式为[属性名称,验证器名称,验证参数]。如果需要对多个属性进行...
Yii框架的表单模型与验证用法是其核心功能之一,为开发者提供了从简单的数据验证到复杂的业务逻辑验证的全面支持。以下是Yii框架表单模型和验证用法的详细介绍。 表单模型在Yii框架中的主要作用是封装表单数据,并...
本文将详细解读Yii框架中数据模型验证规则rules()的实现方法及其运行机制,帮助开发者有效地完成用户注册等表单验证。 在Yii框架中,模型的验证规则定义在模型类中的rules()方法里。这个方法通过返回一个数组来定义...
2. **\CFormModel**: 这是用于处理用户输入数据的模型类,常用于表单验证。它不直接与数据库交互,而是接收来自视图(View)的POST数据,进行验证并返回结果。`CFormModel`提供了`rules()`方法来定义验证规则,如...
在Yii中,表单处理是一个重要的部分,它涉及到前端与后端的交互以及数据验证,确保用户输入的有效性和安全性。 一、前端表单提交与验证 1. **前端原生HTML提交**: - 原生HTML标签:使用`<input>`、`<a>`等标签...
在Yii2中,`rules()`方法用于定义模型的验证规则,这些规则可以应用于表单提交、数据库保存等多个场景。下面将详细解析Yii2.0的规则验证集合。 1. `required`: 这是最基础的验证规则,用于检查某个属性的值是否为空...
在视图文件中,你可以使用 `yii\captcha\Captcha` 表单字段来渲染验证码图像和输入框。例如,在登录或注册表单中: ```php $form = ActiveForm::begin(); ?> ... $form->field($model, 'captcha')->widget...
为了实现有效的数据验证,Yii2还提供了表单构建器(Form Builder),通过它我们能够方便地将模型的验证规则映射到视图(View)中的表单元素上,从而自动产生前端校验。这不仅提高了开发效率,也加强了前后端数据验证...
总结来说,Yii中处理表单的过程涉及模型的创建和验证规则的定义、控制器的动作处理以及视图的渲染。通过这种方式,Yii提供了强大的表单处理能力,使得开发者能够快速、安全地构建Web应用程序的用户交互部分。
- **验证安装:** 提供方法来验证 Yii 是否正确安装。 - **1.2.2 创建骨架应用 (Creating Skeleton Application)** - **创建项目目录结构:** 指导开发者建立正确的项目文件夹结构。 - **配置文件设置:** 如何...
在Yii框架中,使用rules()方法在模型中声明验证规则,这些规则定义了数据需要满足的条件。 4. 创建控制器动作(Controller Action):控制器动作用于响应用户的请求,包括表单的提交。它负责接收模型数据并处理相应...
总之,Yii2.0提供的强大和灵活的验证机制可以让我们在Web应用程序中方便地实现各种表单验证,包括本例中的用户名和邮箱验证。通过遵循最佳实践,比如在模型层定义验证规则,我们不仅可以提高代码的可维护性,还可以...
// 其他表单字段... $form->field($model, 'verifyCode')->widget(Captcha::className()); // 表单提交按钮等其他代码... ActiveForm::end(); ``` 以上就是Yii2简单实现给表单添加验证码的方法。除了验证码功能本身...
在视图中,你可以使用模型和`ActiveForm`创建表单字段: ```php echo $form->field($model, 'username')->textInput(); echo $form->field($model, 'email')->emailInput(); ``` 三、表单验证 Yii2的`ActiveForm`...
首先,Yii框架中的表单模型使用一般涉及创建与表单相关的模型类,并在此类中设置字段的验证规则。模型类是数据和业务逻辑的载体,通过模型类,开发者可以很方便地管理数据字段、应用业务规则以及处理数据的CRUD操作...
`rules()`方法是Yii的Model类中的一个重要方法,用于定义验证规则。然而,它也可以用来设置默认值,特别是对于那些需要在保存前自动填充的字段。例如,我们可以为`timestamp`字段设置当前日期和时间作为默认值: ``...