当前位置:首页 > CMS教程 > Thinkphp > 列表

Thinkphp5框架使用validate实现验证功能的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-12 15:46:48 浏览: 评论:0 

本文实例讲述了Thinkphp5框架使用validate实现验证功能的方法,分享给大家供大家参考,具体如下:

作为前端er,对于验证这块有着切身的体会,虽然逐渐得心应手,但始终没有一个内置的功能拿来就能用。tp5恰好提供一个,本文简单介绍并实现以下,主要是实现一下。

验证的实现基于tp5内置的对象validate。

在Index模块化下index控制器同级目录创建一个validate文件,里面一个Vdate.php验证文件,这个文件也可以放在common目录下面,只要namespace正确就可。代码如下

  1. <?php 
  2.   namespace app\index\validate; 
  3.   use think\Validate; 
  4.   class Vdate extends Validate{ 
  5.    //每个字段对应一个规则,这是第一层 
  6.     protected $rule=[ 
  7.      ["name","require|max:10","不能为空|分类名不能超过10个字符"], 
  8.      ["parent_id","number","必须为数字"], 
  9.     /* ["id","number","必须是数字"], 
  10.      ["status","number|in:1,0,-1","必须是数字|必须是是0,-1,1"],*/ 
  11.     ]; 
  12.    //应用的场景,这是第二层 
  13.     protected $scene=[ 
  14.      "save"=>["name","parent_id"], 
  15.     ]; 
  16.   } 

可以写多个字段,就如同我注释的。

然后前端页面代码

  1. <!DOCTYPE html> 
  2. <html lang="en"> 
  3. <head> 
  4.   <meta charset="UTF-8"> 
  5.   <title>验证数据</title> 
  6. </head> 
  7. <body> 
  8.   <form action="{:url('index/validateF')}" method="GET"> 
  9.     <input type="text" name="name"> 
  10.     <input type="submit" value="提交"> 
  11.   </form> 
  12. </body> 
  13. </html> 

后端控制器index下面对应的validateF

  1. public function validateF() 
  2.     $data=input("get."); 
  3.     print_r($data); 
  4.     $validate=validate("Vdate"); //使用验证 
  5.     //scene("save")->check($data)内置方法 
  6.     if(!$validate->scene("save")->check($data)){ 
  7.       $this->error($validate->getError());//内置错误返回 
  8.     } 
  9.     //剩下操作 
  10.     $res=model("category")->add($data); 
  11.     if($res){ 
  12.      $this->success('新增成功'); 
  13.     }else
  14.      $this->error("新增失败!"); 
  15.     } 

这样就可以了,很简单的实现,关于每个字段的规则,内容很多可以参考手册或者官网吧。

Tags: Thinkphp5 validate

分享到: