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, ...
随机推荐
- LeetCode 230. 二叉搜索树中第K小的元素(Kth Smallest Element in a BST)
题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: roo ...
- 设置Chart.js默认显示Point点的值不用鼠标经过才显示
Chart.js默认的显示方式是鼠标经过Point点的时候才会显示这个点的值,代码如下: var testdata: { periodNum: ["2018121","2 ...
- Mac下搭建Vue开发环境
认知: 注:上面的图片转自Vue2.0 新手入门 — 从环境搭建到发布 1.安装brew 打开终端运行以下命令: /usr/bin/ruby -e "$(curl -fsSL https:/ ...
- PMML辅助机器学习算法上线
在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...
- kettle的数据库配置的表分析
以下场景,用mysql来举例说明.本文是在初步了解了kettle的数据库配置之后,做的总结和分析.将kettle中的配置用数据库管理的时候,在创建了一个新的数据库,还没有做任何kettle中的job和 ...
- java tfserving grpc 通信调用代码解析 【重点参考】
https://blog.csdn.net/shin627077/article/details/78592729/ [重点参考]
- phpStudy本地搭建wordpress教程
一.启用phpStudy环境包 phpStudy简单易用,一键启动配置本地环境; 二.wordpress博客程序 登陆wordpress官网下载最新程序,解压后提取wordpress目录下全部文件到p ...
- springBoot整合spring、springMVC、mybatis
前文 1.为什么使用springBoot 众所周知,spring是Java在搭建后台时非常实用的框架,其整合了市场上几乎所有的主流框架于一体,使后端编程更加高效.快速: 而SpringBoot更是把s ...
- 手动集成 Ironic 裸金属管理服务(Rocky)
目录 文章目录 目录 前文列表 横向扩展裸金属管理服务节点 配置基础设施 安装 Ironic(BareMetal) 安装 Nova Compute(BareMetal) 配置 Neutron 提供 P ...
- vue-cli3的安装使用
一.安装vue-cli3 1.全局安装vue-cli 使用命令 cnpm install -g @vue/cli . npm install -g @vue/cli.yarn global add ...