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 相关文章推荐
用PHP和ACCESS写聊天室(二)
Oct 09 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php中的ini配置原理详解
Oct 14 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
Oct 14 PHP
PHP清除字符串中所有无用标签的方法
Dec 01 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
Dec 24 PHP
PHP中each与list用法分析
Jan 08 PHP
微信公众平台DEMO(PHP)
May 04 PHP
PHP引用返回用法示例
May 28 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
PHP使用非对称加密算法RSA
Apr 21 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
javascript中拼接HTML字符串的最快、最好的方法
2014/06/07 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
jQuery插件FusionCharts绘制2D双折线图效果示例【附demo源码】
2017/04/14 jQuery
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
详解vue中组件参数
2018/07/09 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
Python构建网页爬虫原理分析
2017/12/19 Python
Python机器学习之决策树算法
2017/12/22 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
婚礼答谢词
2015/01/04 职场文书
2015年财务部工作总结
2015/04/10 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
手把手教你导入Go语言第三方库
2021/08/04 Golang
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
spring boot实现文件上传
2022/08/14 Java/Android