本文實(shí)例講述了Thinkphp5框架使用validate實(shí)現(xiàn)驗(yàn)證功能的方法。分享給大家供大家參考,具體如下:
作為前端er,對(duì)于驗(yàn)證這塊有著切身的體會(huì),雖然逐漸得心應(yīng)手,但始終沒(méi)有一個(gè)內(nèi)置的功能拿來(lái)就能用。tp5恰好提供一個(gè)。本文簡(jiǎn)單介紹并實(shí)現(xiàn)以下。主要是實(shí)現(xiàn)一下。
驗(yàn)證的實(shí)現(xiàn)基于tp5內(nèi)置的對(duì)象validate。
在Index模塊化下index控制器同級(jí)目錄創(chuàng)建一個(gè)validate文件,里面一個(gè)Vdate.php驗(yàn)證文件,這個(gè)文件也可以放在common目錄下面,只要namespace正確就可。代碼如下
?php
namespace app\index\validate;
use think\Validate;
class Vdate extends Validate{
//每個(gè)字段對(duì)應(yīng)一個(gè)規(guī)則,這是第一層
protected $rule=[
["name","require|max:10","不能為空|分類(lèi)名不能超過(guò)10個(gè)字符"],
["parent_id","number","必須為數(shù)字"],
/* ["id","number","必須是數(shù)字"],
["status","number|in:1,0,-1","必須是數(shù)字|必須是是0,-1,1"],*/
];
//應(yīng)用的場(chǎng)景,這是第二層
protected $scene=[
"save"=>["name","parent_id"],
];
}
可以寫(xiě)多個(gè)字段,就如同我注釋的。
然后前端頁(yè)面代碼
!DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>驗(yàn)證數(shù)據(jù)/title>
/head>
body>
form action="{:url('index/validateF')}" method="GET">
input type="text" name="name">
input type="submit" value="提交">
/form>
/body>
/html>
后端控制器index下面對(duì)應(yīng)的validateF
public function validateF()
{
$data=input("get.");
print_r($data);
$validate=validate("Vdate"); //使用驗(yàn)證
//scene("save")->check($data)內(nèi)置方法
if(!$validate->scene("save")->check($data)){
$this->error($validate->getError());//內(nèi)置錯(cuò)誤返回
}
//剩下操作
$res=model("category")->add($data);
if($res){
$this->success('新增成功');
}else{
$this->error("新增失敗!");
}
}
這樣就可以了。很簡(jiǎn)單的實(shí)現(xiàn)。關(guān)于每個(gè)字段的規(guī)則,內(nèi)容很多可以參考手冊(cè)或者官網(wǎng)吧。
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- thinkphp框架使用JWTtoken的方法詳解
- PHP如何使用JWT做Api接口身份認(rèn)證的實(shí)現(xiàn)
- php實(shí)現(xiàn)JWT(json web token)鑒權(quán)實(shí)例詳解
- PHP JWT初識(shí)及其簡(jiǎn)單示例
- php JWT在web端中的使用方法教程
- php 后端實(shí)現(xiàn)JWT認(rèn)證方法示例
- thinkPHP5使用Rabc實(shí)現(xiàn)權(quán)限管理
- thinkPHP5使用laypage分頁(yè)插件實(shí)現(xiàn)列表分頁(yè)功能
- thinkphp5使用bootstrapvalidator進(jìn)行異步驗(yàn)證郵箱的示例
- 基于ThinkPHP5框架使用QueryList爬取并存入mysql數(shù)據(jù)庫(kù)操作示例
- ThinkPHP5框架中使用JWT的方法示例