Thinkphp5框架使用validate实现验证功能的方法


Posted in PHP onAugust 27, 2019

本文实例讲述了Thinkphp5框架使用validate实现验证功能的方法。分享给大家供大家参考,具体如下:

作为前端er,对于验证这块有着切身的体会,虽然逐渐得心应手,但始终没有一个内置的功能拿来就能用。tp5恰好提供一个。本文简单介绍并实现以下。主要是实现一下。

验证的实现基于tp5内置的对象validate。

在Index模块化下index控制器同级目录创建一个validate文件,里面一个Vdate.php验证文件,这个文件也可以放在common目录下面,只要namespace正确就可。代码如下

<?php
  namespace app\index\validate;
  use think\Validate;
  class Vdate extends Validate{
   //每个字段对应一个规则,这是第一层
    protected $rule=[
     ["name","require|max:10","不能为空|分类名不能超过10个字符"],
     ["parent_id","number","必须为数字"],
    /* ["id","number","必须是数字"],
     ["status","number|in:1,0,-1","必须是数字|必须是是0,-1,1"],*/
    ];
   //应用的场景,这是第二层
    protected $scene=[
     "save"=>["name","parent_id"],
    ];
  }

可以写多个字段,就如同我注释的。

然后前端页面代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>验证数据</title>
</head>
<body>
  <form action="{:url('index/validateF')}" method="GET">
    <input type="text" name="name">
    <input type="submit" value="提交">
  </form>
</body>
</html>

后端控制器index下面对应的validateF

public function validateF()
{
    $data=input("get.");
    print_r($data);
    $validate=validate("Vdate"); //使用验证
    //scene("save")->check($data)内置方法
    if(!$validate->scene("save")->check($data)){
      $this->error($validate->getError());//内置错误返回
    }
    //剩下操作
    $res=model("category")->add($data);
    if($res){
     $this->success('新增成功');
    }else{
     $this->error("新增失败!");
    }
}

这样就可以了。很简单的实现。关于每个字段的规则,内容很多可以参考手册或者官网吧。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
实用函数4
Nov 08 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
php变量作用域的深入解析
Jun 03 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
php中spl_autoload详解
Oct 17 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 #PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 #PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 #PHP
php的命名空间与自动加载实现方法
Aug 25 #PHP
PHP7数组的底层实现示例
Aug 25 #PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 #PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 #PHP
You might like
Prototype使用指南之range.js
2007/01/10 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
JS实现模仿微博发布效果实例代码
2013/12/16 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
关于jquery中attr()和prop()方法的区别
2018/05/28 jQuery
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
基于python实现高速视频传输程序
2019/05/05 Python
python中删除某个元素的方法解析
2019/11/05 Python
Python3创建Django项目的几种方法(3种)
2020/06/03 Python
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
详解HTML5新增标签
2017/11/27 HTML / CSS
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
园林技术个人的自我评价
2014/01/08 职场文书
称象教学反思
2014/02/03 职场文书
简单租房协议书范本
2014/08/20 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python