Thinkphp5框架使用validate實(shí)現(xiàn)驗(yàn)證功能的方法
本文實(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的方法示例
相關(guān)文章
php+iframe實(shí)現(xiàn)隱藏?zé)o刷新上傳文件
首先ajax不能上傳文件,這誤導(dǎo)了我有段時(shí)間,今晚睡不著就照著說(shuō)明做了個(gè)無(wú)刷新上傳文件2012-02-02laravel 解決paginate查詢(xún)多個(gè)字段報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇laravel 解決paginate查詢(xún)多個(gè)字段報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP生成短網(wǎng)址的思路以及實(shí)現(xiàn)方法的詳解
今天小編就為大家分享一篇關(guān)于PHP生成短網(wǎng)址的思路以及實(shí)現(xiàn)方法的詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Drupal7中常用的數(shù)據(jù)庫(kù)操作實(shí)例
Drupal 7 提供的新功能其中一個(gè)就是可以使用 Query Builder and Query Objects 查詢(xún)生成器來(lái)構(gòu)造查詢(xún)對(duì)象的能力,無(wú)需在代碼中寫(xiě)原始的SQL語(yǔ)句,一是提高了代碼可閱讀性,二是兼容所有數(shù)據(jù)庫(kù)2014-03-03PHP學(xué)習(xí)記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎(chǔ)【接口、抽象類(lèi)、靜態(tài)方法等
這篇文章主要介紹了PHP學(xué)習(xí)記錄之面向?qū)ο螅∣bject-oriented programming,OOP)基礎(chǔ),結(jié)合實(shí)例形式分析了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)中接口、抽象類(lèi)、靜態(tài)方法等相關(guān)概念、原理、用法與操作注意事項(xiàng),需要的朋友可以參考下2019-12-12