• 自定义验证类

    class BaseModel extends Model {
    public function rules() {
    return [
    ['obj', ContentSecurityValidator::class],
    ];
    }
    public function exec() {
    if (!$this->validate()) {
    return [
    'errors' => $this->errors
    ];
    }
    }
    public function attributeLabels() {
    return [
    'obj' => '标签',
    ];
    }
    } /**
    * 自定义验证类
    */
    class BaseValidator extends Validator { /**
    * 必须要实现该方法
    * @param \yii\base\Model $model
    * @param string $attribute 参数名
    * @return bool
    */
    public function validateAttribute($model, $attribute) {
    $attributeValue = $model->$attribute;//获取$model里面的参数的值
    $attributes = $model->attributes;//获取model里面的参数数组
    $attributeLabels = $model->attributeLabels();//获取model里面的已经设置好参数对应标签 }
    }
  • 自定义验证方法
    class BaseModel extends Model {
    public function rules() {
    return [
    ['obj', 'validate'],
    ];
    }
    public function exec() {
    if (!$this->validate()) {
    return [
    'errors' => $this->errors
    ];
    }
    }
    public function attributeLabels() {
    return [
    'obj' => '标签',
    ];
    }
    /**
    * 自定义方法
    */
    public function validate($attribute) {
    $attributeValue = $this->$attribute;//获取$model里面的参数的值
    $attributes = $this->attributes;//获取model里面的参数数组
    $attributeLabels = $this->attributeLabels();//获取model里面的已经设置好参数对应标签 }
    }
  • 不刷新,通过切换select的按钮,面对不同场景时,设置某些必填项
    public function rules() {
    return [
    [['email', 'phone'], "requiredValidators", 'skipOnEmpty' => false, 'skipOnError' => false],
    ];
    } public function requiredValidators($attribute) {
    if ($this->typeId == 'register') {
    $isAttrEmpty = !$this->$attribute || empty($this->$attribute) || $this->$attribute === '' || $this->$attribute == null;
    if ($isAttrEmpty)
    $this->addError($attribute, $this->attributeLabels()[$attribute] . '不能为空');
    }
    } public function attributeLabels() {
    return [
    'email'=>'邮箱',
    'phone'=>'手机'
    ]
    }

yii自定义验证的更多相关文章

  1. Yii自定义验证规则

    简单的方法:在 model 内部定义规则 最简单的定义验证规则的方法是在使用它的模型(model)内部定义. 比方说,你要检查用户的密码是否足够安全. 通常情况下你会使用 CRegularExpres ...

  2. yii2中自定义验证规则rules

    作者:白狼 出处:www.manks.top/article/yii2_custom_rules 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...

  3. yii2中的rules 自定义验证规则详解

    yii2的一个强大之处之一就是他的Form组件,既方便又安全.有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有. 领导安排搞一个注册的功能,这家伙刷刷刷的又是 ...

  4. 9、 Struts2验证(声明式验证、自定义验证器)

    1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...

  5. 重写ValidateEntity虚方法实现可控的上下文验证和自定义验证

    上篇文章介绍了ValidationAttribute和IValidatableObject.Validate验证,但是这种验证还是稍微简单了,对于复杂的实体,例如:继承过来的实体.实现某接口的实体等等 ...

  6. jq.validate 自定义验证两个日期

    jq.validate 自定义验证两个日期 首先定义有一个表单,date1和date2是属于表单的元素,若date1大于date2,返回false:若date1<date2,返回true.使用j ...

  7. ASP.NET MVC自定义验证Authorize Attribute

    前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和 ...

  8. 关于AngularJs,数据绑定与自定义验证

    最近开始着手学起了Angular,抱着好奇的心情开始研究了起来.忽然发现angular可以巧妙而方便的进行数据的绑定验证啊什么的.(当然,我只是刚开始学,所有可能有更强大的功能,只是我还没有看到) 那 ...

  9. validate插件深入学习-04自定义验证方法

    自定义验证方法 jQuery.validator.addMethod(name,method,[,message]) name: 方法名 method: function(value,element, ...

随机推荐

  1. CentOS6.5 64位下装Docker

    试装,仅仅是做个记录. [root@localhost ~]# sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' > ; > [do ...

  2. css常见小问题(自己遇到的)

    禁止div点击 //css属性: pointer-events: none; //或者定义属性,在js中添加: $(".原类名").addClass("新类名" ...

  3. 一个继承的 DataGridView

    // 允许增加一个 checkbox 列 public class DgvBase : DataGridViewX { protected override void OnColumnAdded(Da ...

  4. MIL/SIL/PIL/HIL/VIL

    MIL:Model in the loop 模型在环,对模型在模型的开发环境下(如SIMULINK)进行仿真,通过输入一系列的测试用例,验证模型是否满足设计的功能需求.验证控制算法模型是否准确地实现了 ...

  5. LoadRunner脚本编写之一

    LoadRunner脚本编写之一 性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不 ...

  6. URL encoding(URL编码)

    URL encoding(URL编码),也称作百分号编码(Percent-encoding),是指特定上下文的统一资源定位符(URL)编码机制UrlEncode:将字符串以URL编码返回值:字符串函数 ...

  7. js 视差滚动 记录备份

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. Spark内核源码解析

    1.spark内核架构常用术语 Application:基于spark程序,包含一个driver program(客户端程序)和多个executeor(线程) Driver Progrom:代表着sp ...

  9. Python爬虫学习==>第八章:Requests库详解

    学习目的: request库比urllib库使用更加简洁,且更方便. 正式步骤 Step1:什么是requests requests是用Python语言编写,基于urllib,采用Apache2 Li ...

  10. Python爬虫学习==>第四章:MySQL的安装

    学习目的: 掌握MySQL数据库的安装 正式步骤 Step1:安装数据库 百度MySQL,下载软件 端口设置 设置密码,我的密码123456 下一步 下一步 查看MySQL服务器是否启动 PS:未申明 ...