yii自定义验证
- 自定义验证类
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自定义验证的更多相关文章
- Yii自定义验证规则
简单的方法:在 model 内部定义规则 最简单的定义验证规则的方法是在使用它的模型(model)内部定义. 比方说,你要检查用户的密码是否足够安全. 通常情况下你会使用 CRegularExpres ...
- yii2中自定义验证规则rules
作者:白狼 出处:www.manks.top/article/yii2_custom_rules 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...
- yii2中的rules 自定义验证规则详解
yii2的一个强大之处之一就是他的Form组件,既方便又安全.有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有. 领导安排搞一个注册的功能,这家伙刷刷刷的又是 ...
- 9、 Struts2验证(声明式验证、自定义验证器)
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
- 重写ValidateEntity虚方法实现可控的上下文验证和自定义验证
上篇文章介绍了ValidationAttribute和IValidatableObject.Validate验证,但是这种验证还是稍微简单了,对于复杂的实体,例如:继承过来的实体.实现某接口的实体等等 ...
- jq.validate 自定义验证两个日期
jq.validate 自定义验证两个日期 首先定义有一个表单,date1和date2是属于表单的元素,若date1大于date2,返回false:若date1<date2,返回true.使用j ...
- ASP.NET MVC自定义验证Authorize Attribute
前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和 ...
- 关于AngularJs,数据绑定与自定义验证
最近开始着手学起了Angular,抱着好奇的心情开始研究了起来.忽然发现angular可以巧妙而方便的进行数据的绑定验证啊什么的.(当然,我只是刚开始学,所有可能有更强大的功能,只是我还没有看到) 那 ...
- validate插件深入学习-04自定义验证方法
自定义验证方法 jQuery.validator.addMethod(name,method,[,message]) name: 方法名 method: function(value,element, ...
随机推荐
- VNC Viewer配置
VNC概述 VNC (Virtual Network Computing)是虚拟网络计算机的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在 ...
- web前端知识点反思总结
当别人问你之前的知识,我们便会勾起之前的回忆,然后进行一番痛苦的挣扎后,发现我依然记得你 什么是 DTD ? 文档类型定义 (DTD) 可定义合法的 xml 文档的构建模块 ,他是使用一系列合法的元素 ...
- CentOS7——卡在在启动界面
系统在启动时,卡在启动界面比如: 解决方法一 这个时候其实系统已经启动了,如果这台机器之前正确配置好了网络连接的话,此时我们可以使用另外一台机器通过SSH来登录这台机器进行修改. 这个时候将系统出问题 ...
- Cookie类
Cookie类:用于存储会话数据 1)构造Cookie对象 Cookie(java.lang.String name, java.lang.String value) 2)设置cookie void ...
- TortoiseGit的安装
运行TortoiseGit-1.7.7.0-32bit.msi, 如下图 点击Next, 下一步 点击Next, 下一步 选择ssh客户端, 使用默认, 点击Next, 下一步 选择安装路径, 点击N ...
- Tag 标签
用于标记和选择. 基础用法 由type属性来选择tag的类型,也可以通过color属性来自定义背景色. <el-tag>标签一</el-tag> <el-tag type ...
- Transfer 穿梭框
基础用法 Transfer 的数据通过 data 属性传入.数据需要是一个对象数组,每个对象有以下属性:key 为数据的唯一性标识,label为显示文本,disabled 表示该项数据是否禁止转移.目 ...
- CSS display的几个常用的属性值,inline , block, inline-block
1.解释一下display的几个常用的属性值,inline , block, inline-block inline(行内元素): 使元素变成行内元素,拥有行内元素的特性,即可以与其他行内元素共享一行 ...
- Docker在CentOS下的安装
工欲善其事,必先利其器. 在我们以后的Docker学习中,都推荐使用CentOS6.5作为学习平台,毕竟Docker的内核也是基于Linux的.本文主要分享笔者在CentOS下的安装Docker的过程 ...
- spring boot 整合redis
spring boot 中配置redis1 在pom.xml中增加相关包依赖:<dependency> <groupId>org.springframework.boot< ...