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截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
浅谈PHP强制类型转换,慎用!
Jun 06 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP语法小结之基础和变量
Nov 22 PHP
PHP如何将XML转成数组
Apr 04 PHP
PHP中Array相关函数简介
Jul 03 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 02 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
PHP实现微信提现功能
2018/09/30 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
NodeJS爬虫实例之糗事百科
2017/12/14 NodeJs
layui 给数据表格加序号的方法
2018/08/20 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
Python中input和raw_input的一点区别
2014/10/21 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
HTML的form表单和django的form表单
2019/07/25 Python
Python-split()函数实例用法讲解
2020/12/18 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
大学生毕业自我鉴定范文
2013/09/19 职场文书
大学生实习推荐信
2015/03/27 职场文书
工作失职检讨书范文
2015/05/05 职场文书
网聊搭讪开场白
2015/05/28 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python
mysql序号rownum行号实现方式
2022/12/24 MySQL