验证规则

1、内置验证规则

   [['sex', 'partner_id'], 'integer'],
[['partner_id', 'camp_id',], 'required'],
[['created_at', 'pics'], 'safe'],
[['name'], 'string', 'max' => 16],
  [['interest', 'quota'], 'number'],
   [['path'], 'unique'],
  ['email', 'email'],
  ['website', 'url', 'defaultScheme' => 'http']; #说明:CUrlValidator 的别名, 确保了特性是一个有效的路径.
  ['username', 'unique', 'targetClass' => '\backend\models\User', 'message' => '用户名已存在.'],
  [['file'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
 

2、正则验证规则

//默认值
['status', 'default', 'value' => self::STATUS_ACTIVE],
//区间
['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]],
//正则
['mobile','match','pattern' => '/^1[3456789]{1}\d{9}$/','message'=>'请输入正确的手机号'],
['name', 'match','not'=>true, 'pattern' => '/^[0-9]+/','message'=>'不能全为数字或以数字开头'],

3、过滤

    ['desc', 'filter', 'filter' => function ($value) {
if (empty($value)){
return null;
}
//过滤特殊字符
return Str::purify($value);
}],

filter(CFilterValidator )-----过滤验证方法:
实例:

['name', 'test', 'message'=> '请填写姓名']
public function test($object, $attributes) {
if($this->name != '张先森') {
$this->addError($object, $attributes['message']);
}
}

//去空格

['username', 'password', 'repassword', 'captcha', 'age', 'sex', 'phone','email'], 'filter', 'filter'=>'trim', 'on'=>'register'],

4、验证码

  ['yzm', 'captcha'],

5、适用场景(自定义场景、或方法)

 ['shop_id', 'required','on'=>self::SCENARIO_ADMIN_CREATE],

6、比较

  ['quota', 'compare', 'compareValue' => 9999.99,'type'=>'number', 'operator' => '<='],//
[['discount','payment','pay_method'],'default','value'=>0],
 
['status', 'compare', 'compareValue' =>$this->oldAttributes['status'],'type'=>'number', 'operator' => '>=','message'=>'状态不能回撤'],//新修改的状态必须大于原有的状态
数值大小
['age', 'compare', 'compareValue' => 30, 'operator' => '>=']; #说明:compareValue(比较常量值) - operator(比较操作符) #说明:CCompareValidator 的别名,确保了特性的值等于另一个特性或常量.

7、时间

  ['uptime', 'date','format'=>'yyyy-MM-dd', 'timestampAttribute'=>'uptime'],

8,条件唯一(比如同一个班级身份证必须唯一)

 ['name', 'required', 'message' => '请选择门店!'],
['shop_id', 'required', 'message' => '请输入菜品名称!'],
['name', //只有 name 能接收错误提示,数组['name','shop_id']的场合,都接收错误提示
'unique', 'targetAttribute'=>['name','shop_id'] ,
'targetClass' => '\models\Dishes', // 模型,缺省时默认当前模型。
'comboNotUnique' => '选择的门店内,该菜品名称已经存在!' //错误信息
], //自定义函数
['name', 'check','on'=>['create']],//定义规则,在create场景中对name进行check方法验证,下面是方法的定义函数
public function check($attribute,$params){
if (empty($this->shop_id)) {
return $this->addError($attribute,'请选择门店!');
}
$dish=Dishes::findOne(['name'=>$this->name,'shop_id'=>$this->shop_id]);
if($dish){
$this->addError($attribute, '该菜品名称已存在!');
}else{
$this->clearErrors($attribute);
}
}

默认值

['updated_at','default','value'=>time(),'on'=>[self::SCENARIO_ADD],'skipOnEmpty'=>false],
['updated_at','editUpdatedAt',on'=>[self::SCENARIO_ADD],'skipOnEmpty'=>false],

参考文章:https://blog.csdn.net/u010010725/article/details/51099326

yii2验证规则的更多相关文章

  1. Yii2 验证规则

    验证器的使用方法: public function rules() { return [ [['email', 'password'], 'required'], ['password', 'stri ...

  2. yii2 验证规则使用方法

    required : 必须值验证属性 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredV ...

  3. yii2中自定义验证规则rules

    作者:白狼 出处:www.manks.top/article/yii2_custom_rules 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...

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

    yii2的一个强大之处之一就是他的Form组件,既方便又安全.有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有. 领导安排搞一个注册的功能,这家伙刷刷刷的又是 ...

  5. Yii2 rules验证规则

    Rules验证规则:  required : 必须值验证属性||CRequiredValidator 的别名, 确保了特性不为空. [['字段名1','字段名2'],required]    //字段 ...

  6. yii2.0-rules验证规则应用实例

    Rules验证规则:  required : 必须值验证属性||CRequiredValidator 的别名, 确保了特性不为空. [['字段名1','字段名2'],required]    //字段 ...

  7. Yii2验证登录得User类

    Yii2中的  Class yii\web\User 是如果进行验证登录,如果我们使用User类验证登录会给我们减少很多麻烦.在此就拿Yii2中自带的登录功能进行说明. 配置.在应用配置文件compo ...

  8. Yii1.1的验证规则

    在Yii1.1的数据验证是由CValidator完成,在CValidator中提供了各种基本的验证规则 <?php public static $builtInValidators=array( ...

  9. ThinkPhp5.0模型验证规则

    Tp5提供了模型数据规则的验证功能,用于在数据save或者update前验证数据的有效性.Tp5提供校验规则的类为\Think\Validate,默认提供的校验规则可以查看该文件. 在Model文件中 ...

随机推荐

  1. webpack打包进行丑化压缩遇到(TypeError Cannot read property 'compilation' of undefined)问题

    今天再重新配置老项目node打包环境的时候遇到了一个问题. 在打包的时候报: TypeError: Cannot read property 'compilation' of undefined 错误 ...

  2. VUE中集成echarts时 getAttribute of null错误

    错误 错误场景一: 错误提示: 在运行Vue项目时出现了上述错误,出现该错误的原因是Echarts的图形容器还未生成就对其进行了初始化所造成的,代码如下: // 基于准备好的dom,初始化echart ...

  3. HTML速查

    HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head& ...

  4. 第1章 JavaScript 简介

    第1章 JavaScript 简介 1.1 JavaScript简史 1.2 JavaScript实现 1.2.1 ECMAScript 1.2.2 文档对象模型(DOM) 1.2.3 浏览器对象模型 ...

  5. Travase Objects and four method of array

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. LeetCode 56. Merge Intervals 合并区间 (C++/Java)

    题目: Given a collection of intervals, merge all overlapping intervals. Example 1: Input: [[1,3],[2,6] ...

  7. python数据类型(第一弹)

    作为一门计算机编程语言,python与其它语言一样,设有若干种数据类型,准确掌握各种数据类型的常用方法是精通python的必要条件,也是熟练使用各数据类型.最大限度发挥它们功能的基本条件. pytho ...

  8. H5网页布局+css代码美化

    HTML5的结构化标签,对搜索引擎更友好 li 标签对不利于搜索引擎的收录,尽量少用 banner图片一般拥有版权,不需要搜索引擎收录,因此可以使用ul + li <samp></s ...

  9. spring的困惑--org.springframework.web.servlet.DispatcherServlet noHandlerFound

    出现这种情况可能是代码没有更新到Tomcat服务器上

  10. 论文阅读笔记(十九)【ITIP2017】:Super-Resolution Person Re-Identification With Semi-Coupled Low-Rank Discriminant Dictionary Learning

    Introduction (1)问题描述: super resolution(SP)问题:Gallery是 high resolution(HR),Probe是 low resolution(LR). ...