前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2 学习笔记之验证规则

Yii2 学习笔记之验证规则

作者头像
guanguans
发布2018-05-09 16:31:37
1.3K0
发布2018-05-09 16:31:37
举报
文章被收录于专栏:琯琯博客

在开发应用程序时,永远不要相信从用户接收到的数据。为了使用模式来验证用户的输入,应该调用 yii\base\Model::validate() 方法。如果验证成功,它返回一个布尔值。如果有错误发生,可以从 yii\base\Model::$errors 得到它们。

required : 必须值验证属性
代码语言:javascript
复制
// 说明:CRequiredValidator 的别名, 确保了特性不为空.
[['字段名'], required, 'requiredValue'=>'必填值', 'message'=>'提示信息']
email : 邮箱验证
代码语言:javascript
复制
// 说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址.
['email', 'email']
match : 正则验证
代码语言:javascript
复制
[['字段名'], match, pattern'=>'正则表达式', 'message'=>'提示信息'];
// 例如
['mobile', 'match', 'pattern'=>'/^1\d{10}$/', 'message'=>'手机号格式不正确'],
// 正则取反 说明:CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式.
[['字段名'] ,match, 'not'=>ture, 'pattern'=>'正则表达式', 'message'=>'提示信息']
url : 网址
代码语言:javascript
复制
// 说明:CUrlValidator 的别名, 确保了特性是一个有效的路径.
['website', 'url', 'defaultScheme' => 'http'];
captcha : 验证码
代码语言:javascript
复制
// 说明:CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码.
['verificationCode', 'captcha']
safe : 安全
代码语言:javascript
复制
['description', 'safe']
compare : 比较
代码语言:javascript
复制
// 说明:compareValue(比较常量值) - operator(比较操作符)  #说明:CCompareValidator 的别名,确保了特性的值等于另一个特性或常量.
['age', 'compare', 'compareValue' => 30, 'operator' => '>=']
default : 默认值
代码语言:javascript
复制
// 说明:CDefaultValueValidator 的别名, 为特性指派了一个默认值.
['age', 'default', 'value' => null]
exist : 存在
代码语言:javascript
复制
// 说明:CExistValidator 的别名,确保属性值存在于指定的数据表字段中.
[['product_type_id'],'exist','targetClass' => ProductType::className(),'targetAttribute' => 'id','message'=>'请选择商品分类!']
file : 文件
代码语言:javascript
复制
// 说明:CFileValidator 的别名, 确保了特性包含了一个上传文件的名称.
['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024]
filter : 滤镜
代码语言:javascript
复制
// 说明:CFilterValidator 的别名, 使用一个filter转换属性.
[['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true]
in : 范围
代码语言:javascript
复制
// 说明:CRangeValidator 的别名,确保了特性出现在一个预订的值列表里.
['level', 'in', 'range' => [1, 2, 3]]
unique : 唯一性
代码语言:javascript
复制
// 说明:CUniqueValidator 的别名,确保了特性在数据表字段中是唯一的.
['username', 'unique']
integer : 整数
代码语言:javascript
复制
['age', 'integer']
number : 数字
代码语言:javascript
复制
['salary', 'number']
double : 双精度浮点型
代码语言:javascript
复制
['salary', 'double']
date : 日期
代码语言:javascript
复制
[['from', 'to'], 'date']
string : 字符串
代码语言:javascript
复制
['username', 'string', 'length' => [4, 24]]
boolean : 是否为一个布尔值
代码语言:javascript
复制
// 说明:CBooleanValidator 的别名
['字段名', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true]
image :是否为有效的图片文件
代码语言:javascript
复制
['primaryImage','image', 'extensions' => 'png, jpg,jpeg','minWidth' => 100,'maxWidth' => 1000,'minHeight' => 100,'maxHeight' => 1000,]
custom:自定义验证
代码语言:javascript
复制
['mobile', 'checkMobile']

//验证手机号码
public function checkMobile(){
	$reg = '/^1\d{10}$/';
	if($this->mobile && !preg_match($reg, $this->mobile)){
		$this->addError('mobile', Yii::t('common','Mobile Is Invalid'));
		return false;
	}
}

//也可以用正则验证器替代
['mobile','match','pattern'=>'/^1\d{10}$/','message'=>'手机号格式不正确'],
修改验证器默认 message 英文提示
代码语言:javascript
复制
[['email', 'username', 'pwd', 'nickname'], 'required']
//当使用这样的验证规则,如果我们要对其进行每个字段进行message提示的时候,就得拆分开,单独设置各自的message,这样写起来复杂而又费事。最简单的方式就是写成以下这样
[['email', 'username', 'pwd', 'nickname'], 'required', 'message'=>'{attribute} 不能为空!']

(完)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • required : 必须值验证属性
  • email : 邮箱验证
  • match : 正则验证
  • url : 网址
  • captcha : 验证码
  • safe : 安全
  • compare : 比较
  • default : 默认值
  • exist : 存在
  • file : 文件
  • filter : 滤镜
  • in : 范围
  • unique : 唯一性
  • integer : 整数
  • number : 数字
  • double : 双精度浮点型
  • date : 日期
  • string : 字符串
  • boolean : 是否为一个布尔值
  • image :是否为有效的图片文件
  • custom:自定义验证
  • 修改验证器默认 message 英文提示
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档