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设计聊天室步步通
Oct 09 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
PHP中数组的分组排序实例
Jun 01 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
php计算整个目录大小的方法
Jun 19 PHP
yii通过小物件生成view的方法
Oct 08 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
PHP中仿制 ecshop验证码实例
Jan 06 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
Oct 08 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获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
Python Requests 基础入门
2016/04/07 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
介绍一下你对SOA的认识
2016/04/24 面试题
学生鉴定评语大全
2014/05/05 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
投标承诺函格式
2015/01/21 职场文书
公司出纳岗位职责
2015/03/31 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL