Yii2 自定义独立验证器

新建一个文件:

?php
/**
 * author     : forecho <[email protected]>
 * createTime : 2015/7/1 14:54
 * description:
 */

namespace common\helps;

use yii\validators\Validator;

class ArrayValidator extends Validator
{

    public function validateAttribute($model, $attribute)
    {
        if (!is_array($model->$attribute)) {
            $this->addError($model, $attribute, $attribute . ‘必须是一个数组‘);
        }
    }
}

使用的时候:

public function rules()
{
    return [
        ...
        [‘kind_ids‘, ‘common\helps\ArrayValidator‘], // 自定义验证
        ...
    ];
}

参考:http://stackoverflow.com/questions/28313696/yii2-class-validator-does-not-exist

来源:http://www.getyii.com/topic/45

时间: 2024-08-06 17:11:38

Yii2 自定义独立验证器的相关文章

Tp5 独立验证器

初步理解 在validate文件夹中建立一个个独立验证器,并建立一个BaseValidate的文件,所有独立验证器继承BaseValidate,base继承Validate 在BaseValidate中写一个goCheck方法, 1 public function goCheck() 2 { 3 //获取http传入的参数 4 //对这些参数进行校验 5 $request = Request::instance();//获取所有参数的方法 6 $params = $request->param(

如果自定义模板验证器有同名的输入属性时,各验证器的行为是什么

最近由于工作需要,使用了自定义模板验证器.其中有两个自定义验证器分别定义了一个同名的输入属性,导致两个验证器的验证逻辑出现了问题.经过实验,自己总结问题的原因和同名输入属性的适用规则如下. 1 同名输入属性根据DOM的顺序适用于所有包含该名输入属性的所有验证器. 假设两个自定义验证器custom1和custom2,都包含prop输入属性. <input ngModel text='test' name='age' custom1 [prop]='"abc"' custom2 [p

自定义超时验证器

应用场景 用来验证操作是否大于最小时间间隔,如果大于则允许操作,不大于则不允许操作 1. ValidateOvertimeUtil.java package com.qfx.utils; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.ut

自定义验证器——用Struts2框架以框架师的思维灵活做好该事情

面对的问题:自定义一个18位身份验证器,编写验证器,在validators.xml文件中进行注册.在验证配置文件中使用? 第一部分:理解Struts2中自带的验证器 第二部分:怎样通过服务器(后台),再次对前台的数据进行验证 第三部分:用Struts2来自定义验证器(问题解决方案) 第一部分:理解Struts2中自带的验证器 Struts2框架中自带的后台服务器验证分为两种:声明式验证和编程式验证 u  声明式验证(重点) ?  对哪个 Action 或 Model 的那个字段进行验证 ?  使

Struts2的输入验证(四)-自定义验证器与编程式验证

一.自定义验证器 1.实现步骤: 1)定义一个验证器的类 自定义验证器必须实现 Validator 接口,由于ValidatorSupport 和 FieldValidatorSupport 实现了 Validator 接口,因此可以继承ValidatorSupport 或 FieldValidatorSupport Ⅰ. 若需要普通的验证程序,可以继承 ValidatorSupport 类: Ⅱ. 若需要字段验证程序,可以继承 FieldValidatorSupport 类: Ⅲ. 若验证程序

121.自定义验证器

自定义验证器: 有时候我们需要从数据库中提取数据进行验证,这个时候如果还是采用已经定义好的验证器就不能够实现我们想要的功能了.比如我们在注册的时候要验证该手机号或者是邮箱之前是否已经注册过了.如果已经注册过了,就不能够再次进行注册了.这个时候我们就需要对数据库中的手机字段进行验证了.对某个字段进行验证的方式就是,定义一个方法,这个方法的名字的定义规则就是clean_fieldname.如果验证失败,那么就抛出一个错误,如果没有找到相同的手机号就正常情况下返回一个手机号,代表已经通过了验证. (1

JS表单原生验证器

一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部流行的框架,如bootstrap,由于我负责的模块 仅仅是其中的一部分,因此少数服从多数,无奈只能抛弃bootstrap等提供的布局,样式以及验证等一些列如此方便的组件,(他们拒绝使用的原因也令人发省). 那么问题就来了. 二.设计理念 我们都知道,在抛开外部框架,仅仅用JS+css+html 去开发一个页面,是很复杂的,尤其是在没有美工,前台的情况下.其实bootstrap 在一定程度上

走进Struts2(三)— 验证器

一个好的验证框架必须要考虑的事情: 验证功能的复用性. 验证功能的可扩展性. 验证与业务逻辑分离 Struts2提供了强大的验证框架:在 xwork-core-2.3.24.jar 包下,在 \com\opensymphony\xwork2\validator\validators 路径下找一个名字为" default.xml "的 xml 文件 一.Struts2的预定义验证器 <validators> <validator name="required&

原生JS 表单提交验证器

一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部流行的框架,如bootstrap,由于我负责的模块 仅仅是其中的一部分,因此少数服从多数,无奈只能抛弃bootstrap等提供的布局,样式以及验证等一些列如此方便的组件,(他们拒绝使用的原因也令人发省). 那么问题就来了. 二.设计理念 我们都知道,在抛开外部框架,仅仅用JS+css+html 去开发一个页面,是很复杂的,尤其是在没有美工,前台的情况下.其实bootstrap 在一定程度上