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 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
PHP截取汉字乱码问题解决方法mb_substr函数的应用
Mar 30 PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 PHP
教你如何快捷的使用cmd访问mysql小技巧
May 26 PHP
Zend Framework页面缓存实例
Jun 25 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php json转换成数组形式代码分享
Nov 10 PHP
php制作文本式留言板
Mar 18 PHP
php实现仿写CodeIgniter的购物车类
Jul 29 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 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版本不同可能诱发的问题
2015/12/22 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
json数据的列循环示例
2013/09/06 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
javascript实现京东登录显示隐藏密码
2020/08/02 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
python获取mp3文件信息的方法
2015/06/15 Python
微信跳一跳python代码实现
2018/01/05 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
python中怎么表示空值
2020/06/19 Python
django rest framework使用django-filter用法
2020/07/15 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
平面设计的岗位职责
2013/11/08 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
比较几种Redis集群方案
2021/06/21 Redis
ipad隐藏软件app图标方法
2022/04/19 数码科技