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实现文件下载更能介绍
Nov 23 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
Jun 03 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
PHP实现通过文本文件统计页面访问量功能示例
Feb 13 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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
pyspark 随机森林的实现
2020/04/24 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
教学大赛获奖感言
2014/01/15 职场文书
竞聘书模板
2014/03/31 职场文书
导师推荐信范文
2014/05/09 职场文书
狮子林导游词
2015/02/03 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
赡养老人协议书范本
2015/08/06 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
2019个人工作总结
2019/06/21 职场文书