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 相关文章推荐
php&amp;java(一)
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
浅析PHP文件下载原理
Dec 25 PHP
php自定义加密与解密程序实例
Dec 31 PHP
php生成图片验证码
Jun 09 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 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
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
利用PHP生成静态html页面的原理
2016/09/30 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
2019/09/23 PHP
js获取height和width的方法说明
2013/01/06 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
Bootstrap插件全集
2016/07/18 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
机器学习10大经典算法详解
2017/12/07 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
新电JAVA笔试题目
2014/08/31 面试题
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
物理教育专业求职信
2014/06/25 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
单位同意报考证明
2015/06/17 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL