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下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
apache2.2.4+mysql5.0.77+php5.2.8安装精简
Apr 29 PHP
php Smarty 字符比较代码
Feb 27 PHP
php实现单链表的实例代码
Mar 22 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
PHP中余数、取余的妙用
Jun 29 PHP
smarty中常用方法实例总结
Aug 07 PHP
yii2中添加验证码的实现方法
Jan 09 PHP
php 输入输出流详解及示例代码
Aug 25 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 PHP
基于laravel where的高级使用方法
Oct 10 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
Cakephp 执行主要流程
2010/03/24 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP加密解密实例分析
2015/12/25 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
javascript实现模拟时钟的方法
2015/05/13 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
微信JS接口大全
2016/08/25 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
Python猜数字算法题详解
2020/03/01 Python
pandas DataFrame运算的实现
2020/06/14 Python
Python 爬虫的原理
2020/07/30 Python
总经理职责范文
2013/11/08 职场文书
先进工作者获奖感言
2014/02/08 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
中小学生学籍证明
2014/10/25 职场文书
奠基仪式致辞
2015/07/30 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL