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 中执行系统外部命令
Oct 09 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
ThinkPHP 404页面的设置方法
Jan 14 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
PHP针对redis常用操作实例详解
Aug 17 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
Apr 22 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 PHP
PHP之header函数详解
Mar 02 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执行.SQL文件
2013/07/05 PHP
php缓存技术详细总结
2013/08/07 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
Python中的闭包总结
2014/09/18 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
python opencv调用笔记本摄像头
2019/08/28 Python
python自动发微信监控报警
2019/09/06 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Keras 使用 Lambda层详解
2020/06/10 Python
Django 实现图片上传和下载功能
2020/12/31 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
老师自我鉴定范文
2013/12/25 职场文书
军人离婚协议书样本
2014/10/21 职场文书
意向协议书
2015/01/27 职场文书