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读取msn上的用户信息类
Dec 05 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
PHP错误处理函数
Apr 03 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
如何通过PHP实现Des加密算法代码实例
May 09 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 大数据量及海量数据处理算法总结
2011/05/07 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
探索浏览器页面关闭window.close()的使用详解
2020/08/21 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
详解Python中类的定义与使用
2017/04/11 Python
Python实现的购物车功能示例
2018/02/11 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
sklearn+python:线性回归案例
2020/02/24 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
2020/02/26 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
物流仓管员岗位职责
2013/12/04 职场文书
项目副经理岗位职责
2013/12/30 职场文书
音乐教学反思
2014/02/02 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
小学师德师风整改措施
2014/10/27 职场文书
综合素质评价自我评价
2015/03/06 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang