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+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php错误、异常处理机制(补充)
May 07 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php+js实现图片的上传、裁剪、预览、提交示例
Aug 27 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php数组查找函数总结
Nov 18 PHP
php实现事件监听与触发的方法
Nov 21 PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
Yii框架小部件(Widgets)用法实例详解
May 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+Ajax实现表单验证的详解
2013/06/25 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
2019/10/21 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
JS 如果改变span标签的是否隐藏属性
2011/10/06 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
javascript判断office版本示例
2014/04/11 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
JS+CSS实现DIV层的展开、收缩效果
2016/01/28 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
Python定时执行之Timer用法示例
2015/05/27 Python
python绘制条形图方法代码详解
2017/12/19 Python
transform python环境快速配置方法
2018/09/27 Python
pandas的qcut()方法详解
2019/07/06 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
俄罗斯披萨、寿司和面食送货到家服务:2 Берега
2019/12/15 全球购物
客服服务心得体会
2013/12/30 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
大学生党员承诺书
2014/05/20 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python