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边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
LotusPhp笔记之:Logger组件的使用方法
May 06 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
PHP+MySQL插入操作实例
Jan 21 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
jQuery的缓存机制浅析
2014/06/07 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
jquery实现翻动fadeIn显示的方法
2015/03/05 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
简述JS控制台的使用
2018/07/15 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
一篇文章快速了解Python的GIL
2018/01/12 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python join方法使用详解
2019/07/30 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
python是怎么被发明的
2020/06/15 Python
python退出循环的方法
2020/06/18 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
SQL面试题
2013/12/09 面试题
门卫班长岗位职责
2013/12/15 职场文书
思想政治教育专业个人求职信范文
2013/12/20 职场文书
软件专业毕业生个人自我鉴定
2014/04/17 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
邀请函范文
2015/02/02 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript