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, ...
随机推荐
- .NET Assembly File Format
https://docs.microsoft.com/en-us/dotnet/standard/assembly/file-format .NET defines a binary file for ...
- EBS GL 日记账行“账户说明”段说明显示不全
问题描述: 路径:总帐管理超级用户/日记帐/输入 如下图所示,日记账行的“账户说明字段”段值说明显示不全 解决方法: 路径:总帐管理超级用户/设置/财务系统/弹性域/关键字/段 如下图所示,找到相应的 ...
- Node某个JS导出方法变量以及在其他地方引用的例子
//modelJs.js var name="miyue"; function doSomething() { console.log("做一些事情"); } ...
- 升ttttttt
升ttttttt 升级日志小书匠 版本号 新功能 修改
- Leaflet - 自定义弹出框(popup)
有两种方法,一种直接改 CSS,一种是通过继承拓展 popup. 方法一:改 CSS 下面是一个将原有样式清空的设置(可能清的不全,只是提供个思路) .l-popup { &--no-styl ...
- PreparedStatement执行sql語句
import com.loaderman.util.JdbcUtil; import java.sql.Connection; import java.sql.PreparedStatement; i ...
- maven 打jar包和war包
( 最简单的:修改pom.xml文件: <packaging>war</packaging>(如果是jar,则是&l ...
- Java 语言实现 MD5 加密
Java 语言实现 MD5 加密 背景说明 在实际项目中,为了安全性考虑,经常要求账号密码是以加密后的密文形式,保存到数据库中. 这样,即使有人获取到了数据库中的密文密码,也不知道明文密码信息是什么, ...
- python与正则
想了解正则的使用,请点击:正则表达式.每种编程语言有一些独特的匹配方式,python也不例外: 语法 含义 表达实例 完整匹配匹配的字符串 \A 仅匹配字符串开头 \Aabc abc \Z 仅匹配字符 ...
- CentOS 7 替换网易yum 源
首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-B ...