thinkphp5.0自定义验证规则使用方法


Posted in PHP onNovember 16, 2017

我们在用thinkphp5.0时候,经常要自定义验证规则,这个写法与tp以前的版本有所区别,小编今天带来大家一起来学习一下5.0下验证规则的使用方法。

在thinkphp5中定义$rule(验证规则)有两种方式

方式一:

$rule = [
  // 不可以在此处定义空的验证 如 'name' => '',会导致出现result未定义错误
  'name' => 'require|max:25',
  'age'  => 'number|between:1,120',
];

方式二:

$rule = [
  'name' => ['require','max'=>25],
  'age'  => ['number','between'=>'1,120'],
];

如果方式一自定义验证规则的话,就可以这样写

$rule = [
  'name' => 'require|max:25|checkName:',
  'age'  => 'number|between:1,120',
];
protected function checkNmae($value)
{
  $value 是name值,可以在此处进行验证,如正则验证
}

如果是方式二的话,写法如下

$rule = [
  'name' => ['require','max'=>25,'checkName'=>'$rule参数'],
  'age'  => ['number','between'=>'1,120'],
  'email' => ['require', 'checkUserEmail'=>'qq.com'],
];
protected function checkName($value, $rule)
{
  $vaule 是name值,$rule为上面的$rule参数
}
protected function checkUserEmail($value,$rule)
{
  $res = preg_match('/^\w+([-+.]\w+)*@'.$rule.'$/', $value);
  if (!$res) {
    return '邮箱只能是'.$rule.'域名';
  } else {
    return true;
  }
}

以上就是我们给出的两种方法的代码,如果你有更好的方法或者代码可以在下面的留言区讨论留言。

PHP 相关文章推荐
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
跟我学Laravel之路由
Oct 15 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
浅谈php7的重大新特性
Oct 23 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
php使用curl获取header检测开启GZip压缩的方法
Aug 15 PHP
浅谈如何提高PHP代码质量之端到端集成测试
May 28 PHP
PHP实现验证码校验功能
Nov 16 #PHP
学习thinkphp5.0验证类使用方法
Nov 16 #PHP
thinkPHP中钩子的使用方法实例分析
Nov 16 #PHP
php表单处理操作
Nov 16 #PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 #PHP
Laravel下生成验证码的类
Nov 15 #PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 #PHP
You might like
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
javascript radio 联动效果
2009/03/04 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
Javascript实现动态时钟效果
2018/11/17 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
微信小程序实现购物车小功能
2020/12/30 Javascript
Python中实现的RC4算法
2015/02/14 Python
Python CSV模块使用实例
2015/04/09 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
Python OS模块实例详解
2019/04/15 Python
python导入pandas具体步骤方法
2019/06/23 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
python怎么判断模块安装完成
2020/06/19 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
医疗纠纷协议书
2014/04/16 职场文书
消防志愿者活动方案
2014/08/23 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
小学国庆节活动总结
2015/03/23 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
经典哲理警句:志不真则心不热,心不热则功不贤
2019/11/14 职场文书
Python道路车道线检测的实现
2021/06/27 Python
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS