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使之能同时支持GIF和JPEG
Oct 09 PHP
坏狼php学习 计数器实例代码
Jun 15 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
php错误级别的设置方法
Jun 17 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
php实现登陆模块功能示例
Oct 20 PHP
PHP实现简单用户登录界面
Oct 23 PHP
基于php解决json_encode中文UNICODE转码问题
Nov 10 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
常用PHP封装分页工具类
2017/01/14 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
2013/09/02 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
jquery基本选择器匹配多个元素的实现方法
2016/09/05 Javascript
在html中引入外部js文件,并调用带参函数的方法
2016/10/31 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
Django后端按照日期查询的方法教程
2021/02/28 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
服务理念标语
2014/06/18 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
抢劫罪辩护词
2015/05/21 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
深入理解python多线程编程
2021/04/18 Python
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers