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
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
php项目打包方法
Feb 18 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
PHP判断一个数组是另一个数组子集的方法详解
Jul 31 PHP
浅析PHP开发规范
Feb 05 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
thinkphp5修改view到根目录实例方法
Jul 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
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
Node.js成为Web应用开发最佳选择的原因
2018/02/05 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
python简单猜数游戏实例
2015/07/09 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
《母亲的恩情》教学反思
2014/02/13 职场文书
年度献血先进个人事迹材料
2014/02/14 职场文书
植物生产学专业求职信
2014/08/08 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
刑事和解协议书范本
2014/11/19 职场文书
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL