Yii2框架自定义验证规则操作示例


Posted in PHP onFebruary 08, 2019

本文实例讲述了Yii2框架自定义验证规则操作。分享给大家供大家参考,具体如下:

废话不多说直接上代码

class AbcModel extends Model
{
  public $aaa;
  public $bbb;
  public $bbb;
  /**
   * 验证提交的form表单
   *
   * @return array
   */
  public function rules()
  {
    return [
      // 自定义验证
      [['aaa', 'bbb', 'ccc'], 'customValidationCityCode'],
    ];
  }
  public function customValidationCityCode($attribute, $params)
  {
    if (!isset($this->$attribute)
      || empty($this->$attribute)
      || !is_array($this->$attribute)
    ) {
      $this->addError($attribute, "值为空或不存在或类型不符合.");
      return;
    }
  }
}

上面的代码意思就是  当启用(new Abc())->validate()后就会根据rules顺序验证属性 ,而customValidationCityCode这个自定义验证方式是 有多少个需要验证的参数就会调用多少次customValidationCityCode方法 ,customValidationCityCode方法中的参数$attribute就是分别对应 aaa   bbb  ccc

Yii2框架自定义验证规则操作示例

这两个值是在yii\validators类中,主要作用分别是:

  • $skipOnError:跳过错误信息,意思就是如果有错误信息存在也会跳过
  • $skipOnEmpty:跳过值为空的属性,就算是该属性需要验证,也会跳过不验证。

yii中实例controller是利用反射机制实例化的  在yii2\vendor\yiisoft\yii2\di\Container.php文件中

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

PHP 相关文章推荐
将PHP作为Shell脚本语言使用
Oct 09 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
PHP学习之整理字符串
Apr 17 PHP
检查php文件中是否含有bom的函数
May 31 PHP
PHP中使用xmlreader读取xml数据示例
Dec 29 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php实现RSA加密类实例
Mar 26 PHP
php判断linux下程序问题实例
Jul 09 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
PHP策略模式写法
Apr 01 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 #PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 #PHP
PHP addcslashes()函数讲解
Feb 03 #PHP
PHP addslashes()函数讲解
Feb 03 #PHP
PHP simplexml_load_string()函数实例讲解
Feb 03 #PHP
PHP simplexml_load_file()函数讲解
Feb 03 #PHP
PHP simplexml_import_dom()函数讲解
Feb 03 #PHP
You might like
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
Javascript Global对象
2009/08/13 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
使用python接入微信聊天机器人
2020/03/31 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
工程管理专业个人求职信范文
2013/12/07 职场文书
给孩子的新年寄语
2014/04/08 职场文书
个人作风建设自查报告
2014/10/22 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
感谢信格式范文
2015/01/22 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
公司转让协议书
2016/03/19 职场文书
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL
Python使用pyecharts控件绘制图表
2022/06/05 Python