thinkPHP5框架自定義驗(yàn)證器實(shí)現(xiàn)方法分析
本文實(shí)例講述了thinkPHP5框架自定義驗(yàn)證器實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
普通的驗(yàn)證器手冊(cè)上已經(jīng)很詳細(xì),我們講解一下如何自定義一個(gè)驗(yàn)證器
首先我們?cè)谀K目錄下建立validata文件夾
然后在里面建立一個(gè)類,取名為IdMustInt.php
代碼如下:注意,我的模塊名為api,所以命名空間如下
保護(hù)屬性$rule為官方規(guī)定,不能改變,其實(shí)驗(yàn)證規(guī)則require都是封裝好的函數(shù)名,所以我們也建立一個(gè)方法,方法名填寫在驗(yàn)證規(guī)則后面即可
namespace app\api\validate;
use think\Validate;
class IdMustInt extends Validate
{
protected $rule = [
'id' => 'require|IsInt'
];
protected function IsInt($value,$rule,$data,$field){
//參數(shù)依次為驗(yàn)證數(shù)據(jù),驗(yàn)證規(guī)則,全部數(shù)據(jù)(數(shù)組),字段名
//這里我們要判斷的驗(yàn)證的數(shù)據(jù)要求必須為正整型
if(is_numeric($value) && is_int($value+0) && ($value+0) > 0){
return true;
}else{
//如果不符合我們的條件,返回錯(cuò)誤信息,在控制器中可以用getError()方法輸出
return $field.'不是整型';
}
}
}
接下來看我們控制器的對(duì)應(yīng)操作
public function getBanner($id)
{
//需要驗(yàn)證的數(shù)據(jù)
$data = [
'id' => $id,
];
//實(shí)例化驗(yàn)證器
$validate = new IdMustInt();
//如果驗(yàn)證數(shù)據(jù)較多,條件也較多,需要批量返回所有錯(cuò)誤信息的話,可以在check()前加上$validata->batch()
$result = $validate->check($data);
if($result){
//業(yè)務(wù)邏輯
}else{
dump($validate->getError());
}
}
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP5 驗(yàn)證器的具體使用
- Thinkphp5 微信公眾號(hào)token驗(yàn)證不成功的原因及解決方法
- thinkphp5.0自定義驗(yàn)證規(guī)則使用方法
- tp5(thinkPHP5框架)captcha驗(yàn)證碼配置及驗(yàn)證操作示例
- 學(xué)習(xí)thinkphp5.0驗(yàn)證類使用方法
- thinkphp5框架API token身份驗(yàn)證功能示例
- thinkPHP5.0框架驗(yàn)證碼調(diào)用及點(diǎn)擊圖片刷新簡(jiǎn)單實(shí)現(xiàn)方法
- thinkphp5使用bootstrapvalidator進(jìn)行異步驗(yàn)證郵箱的示例
- ThinkPHP5.0框架驗(yàn)證碼功能實(shí)現(xiàn)方法【基于第三方擴(kuò)展包】
- Thinkphp5框架使用validate實(shí)現(xiàn)驗(yàn)證功能的方法
相關(guān)文章
淺談Laravel隊(duì)列實(shí)現(xiàn)原理解決問題記錄
本篇文章主要介紹了淺談Laravel隊(duì)列實(shí)現(xiàn)原理解決問題記錄,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
網(wǎng)頁游戲開發(fā)入門教程三(簡(jiǎn)單程序應(yīng)用)
用哪種組合,真的不重要。重要的是時(shí)間和成本。復(fù)雜的地方在數(shù)據(jù)的交互和完善,而不在技術(shù)或效果的實(shí)現(xiàn)。2009-11-11
如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化
這篇文章主要介紹了如何通過PHP安裝數(shù)據(jù)庫并使數(shù)據(jù)初始化,其實(shí)原理就是通過構(gòu)建原生SQL來創(chuàng)建并初始化數(shù)據(jù)庫,連接數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫、使用數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、新增數(shù)據(jù)、關(guān)閉連接,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-03-03
PHP 數(shù)據(jù)結(jié)構(gòu)隊(duì)列(SplQueue)和優(yōu)先隊(duì)列(SplPriorityQueue)簡(jiǎn)單使用實(shí)例
這篇文章主要介紹了PHP 數(shù)據(jù)結(jié)構(gòu)隊(duì)列(SplQueue)和優(yōu)先隊(duì)列(SplPriorityQueue)簡(jiǎn)單使用實(shí)例,需要的朋友可以參考下2015-05-05

