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 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP序列化/对象注入漏洞分析
Apr 18 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
Jun 15 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
PHP抽象类基本用法示例
Dec 28 PHP
PHP PDOStatement::bindValue讲解
Jan 30 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 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简单提示框alert封装函数
2010/08/08 PHP
php实现快速排序法函数代码
2012/08/27 PHP
PHP插入排序实现代码
2013/04/04 PHP
深入PHP异步执行的详解
2013/06/03 PHP
php中文验证码实现示例分享
2014/01/12 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
jquery简单体验
2007/01/10 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
python对html代码进行escape编码的方法
2015/05/04 Python
关于python的list相关知识(推荐)
2017/08/30 Python
python去掉空白行的多种实现代码
2018/03/19 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
如何使用Python抓取网页tag操作
2020/02/14 Python
python中time.ctime()实例用法
2021/02/03 Python
python包的导入方式总结
2021/03/02 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
母婴店促销方案
2014/03/05 职场文书
债务授权委托书范本
2014/10/17 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书