yii2验证规则

1、内置验证规则

   [[‘sex‘, ‘partner_id‘], ‘integer‘],
   [[‘partner_id‘, ‘camp_id‘,], ‘required‘],
   [[‘created_at‘, ‘pics‘], ‘safe‘],
   [[‘name‘], ‘string‘, ‘max‘ => 16],
[[‘interest‘, ‘quota‘], ‘number‘],
   [[‘path‘], ‘unique‘],
 [‘username‘, ‘unique‘, ‘targetClass‘ => ‘\backend\models\User‘, ‘message‘ => ‘用户名已存在.‘],

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);
            }],

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],
 

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);
    }
}

原文地址:https://www.cnblogs.com/huay/p/10830456.html

时间: 2024-10-16 15:13:12

yii2验证规则的相关文章

Yii2 验证规则

验证器的使用方法: public function rules() { return [ [['email', 'password'], 'required'], ['password', 'string', 'min'=>6], ]; } 如上所示,验证器主要使用在rules里面,对当前model里面的属性值进行验证以检查是否满足某种要求. 验证器使用格式 书写格式为:[需要验证的属性,验证器名称,验证器参数]. 如果需要验证的属性为多个可用数组,如果为一个属性可用字符串也可用数组来表示. 每

Yii2 rules验证规则

Rules验证规则:  required : 必须值验证属性||CRequiredValidator 的别名, 确保了特性不为空. [['字段名1','字段名2'],required]    //字段1 2 必填 [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息'];  email : 邮箱验证||CEmailValidator 的别名,确保了特性的值是一个有效的电邮地址. ['email', 'email'];  match 

MVC中的验证规则

前面的博客中曾经提到过ModelBing机制,也在Demo中体现过,在MVC中更吊的是封装了自定义的验证规则.下面来一个Demo来展现一下,看了后,你一定会爱上它的,能让你少写很多JS语句. 1.View层 <span style="font-size:18px;">@*自动绑定实体模型*@ @model MvcApplication1.Models.User <h2>Login</h2> <form method="post&quo

Struts2 验证框架 validation.xml 常用的验证规则

Struts2 验证框架 validation.xml 常用的验证规则 validation.xml 的命名规则和放置路径:文件名:<ActionClassName>-validation.xml<ActionClassName>就是要验证的Action类的名字. 要将此文件放于Class文件相同的目录.如果在Action类在struts配置中有多个action实例(action name),那么对应某个action的验证文件名规则如下:文件名:<ActionClassNam

[Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据 [Asp.net MVC]Asp.net MVC5系列——添加数据 概述 上篇文章中介绍了添加数据,在提交表单的数据的时候,我们需

报错:非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复

当在ASP.NET MVC中,针对一个Model进行添加操作的时候,报如下错误: [InvalidOperationException: 非介入式客户端验证规则中的验证类型名称必须唯一.下列验证类型出现重复: range] 原因是第三方验证程序集和MVC固有验证发生名称的冲突. 解决办法:在Model中属性上注释掉第三方程序集提供的验证特性.

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’,’num

JQuery validate验证规则

//定义中文消息 var cnmsg = { required: "必选字段", remote: "请修正该字段", email: "请输入正确格式的电子邮件", url: "请输入合法的网址", date: "请输入合法的日期", dateISO: "请输入合法的日期 (ISO).", number: "请输入合法的数字", digits: "只能输入整数

2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里

使用TP 3.2框架 验证规则也可以写到模型里,但感觉有些麻烦, 一是有时候不同页面验证的方式会不一样, 二是看到这个   Add  事件里的代码,就清楚要接收什么数据,如何验证数据能够在第一眼有个大致了解 ①控制器代码页 1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 5 header("Content-type: text/html; charset=utf-8"); 6 7 class AddCo