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 相关文章推荐
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
elgg 获取文件图标地址的方法
Mar 20 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
php实现格式化多行文本为Js可用格式
Apr 15 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
PHP实现网站访问量计数器
Oct 27 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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
介绍几个array库的新函数 php
2006/12/29 PHP
15种PHP Encoder的比较
2007/03/06 PHP
20个PHP常用类库小结
2011/09/11 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
jquery获得下拉框值的代码
2011/08/13 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
JS作用域链详解
2017/06/26 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
python虚拟环境迁移方法
2019/01/03 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
在购买印度民族服饰:Soch
2020/09/15 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
投标服务承诺书
2014/05/28 职场文书
员工工作自我评价
2014/09/26 职场文书
领导欢迎词致辞
2015/01/23 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
美元符号 $
2022/02/17 杂记