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与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Feb 08 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
PHP SPL标准库之接口(Interface)详解
May 11 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
浅析php中array_map和array_walk的使用对比
Nov 20 PHP
PHP PDOStatement::getAttribute讲解
Feb 01 PHP
PHP与Web页面交互操作实例分析
Jun 02 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
Javascript中的数学函数
2007/04/04 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
浅谈python中的占位符
2017/11/09 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
大学生毕业自我鉴定
2013/11/06 职场文书
个人自我鉴定
2013/11/07 职场文书
物理教学随笔感言
2014/02/22 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
学前班语言教学计划
2015/01/20 职场文书
防汛通知
2015/04/25 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
MySQL 计算连续登录天数
2022/05/11 MySQL
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server