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 引用(&)详解
Nov 20 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
提高PHP性能的编码技巧以及性能优化详细解析
Aug 24 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
php正则修正符用法实例详解
Dec 29 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 PHP
php redis setnx分布式锁简单原理解析
Oct 23 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
php设计模式 Observer(观察者模式)
2011/06/26 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
Node.js编码规范
2014/07/14 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
Python设计模式之单例模式实例
2014/04/26 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python 的类、继承和多态详解
2017/07/16 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python中p-value的实现方式
2019/12/16 Python
Python中base64与xml取值结合问题
2019/12/22 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
Python3运算符常见用法分析
2020/02/14 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
在C中是否有模拟继承等面向对象程序设计特性的好方法
2012/05/22 面试题
转预备党员政审材料
2014/02/06 职场文书
献爱心活动总结
2014/05/07 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
小学运动会加油稿
2015/07/22 职场文书
社会实践心得体会范文
2016/01/14 职场文书