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的ob_start();控制您的浏览器cache!
Nov 25 PHP
PHP+ajax 无刷新删除数据
Feb 20 PHP
php实现加减法验证码代码
Feb 14 PHP
php实现的Cookies操作类实例
Sep 24 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
Oct 23 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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加MYSQL服务器
2006/10/09 PHP
PHP获得用户使用的代理服务器ip即真实ip
2006/12/31 PHP
MySQL授权问题总结
2007/05/06 PHP
php下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
基于header的一些常用指令详解
2013/06/06 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
应届硕士毕业生自荐信
2014/05/26 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
英文升职感谢信
2015/01/23 职场文书
武侯祠导游词
2015/02/04 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书