Thinkphp5框架使用validate實現驗證功能的方法

這篇文章主要介紹了Thinkphp5框架使用validate實現驗證功能的方法,結合實例形式分析了tp5內置的對象validate實現驗證的相關操作技巧,需要的朋友可以參考下

本文實例講述了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相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章