




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第如何優(yōu)雅的使用laravel的validator驗證方法web開發(fā)過程中經(jīng)常會需要進(jìn)行參數(shù)驗證,laravel中我們常用validator或者request這兩種方法來進(jìn)行驗證,但是這兩種驗證都不是很方便進(jìn)行自定義提示信息,自定義驗證規(guī)則,所以下面來介紹一種很方便的用法:
新建抽象類
namespaceApp\Http\Validators;
useValidator;
abstractclassAbstractValidator
*Validator
*@var\Illuminate\Validation\Factory
protected$validator;
*Validationdatakey=valuearray
*@vararray
protected$data=array();
*Validationerrors
*@vararray
protected$errors=array();
*Validationrules
*@vararray
protected$rules=array();
*Validationmessages
*@vararray
protected$messages=array();
*Validationcodes
*@vararray
protected$codes=array();
publicfunction__construct(array$data)
$this-data=$data;
$this-before();
$this-validator=Validator::make($this-data,$this-rules,$this-messages);
$this-after();
*Setdatatovalidate
*@returnvalidator
publicfunctiongetValidator()
return$this-validator;
*Setdatatovalidate
*@return$this
publicfunctionwith(array$data)
$this-data=$data;
$this-before();
$this-validator=$this-validator-make($this-data,$this-rules,$this-messages);
$this-after();
return$this;
*Validationpassesorfails
*@returnboolean
publicfunctionpasses()
if($this-validator-fails()){
$this-errors=$this-validator-messages();
returnfalse;
returntrue;
*Returnerrors,ifany
*@returnarray
publicfunctionerrors()
return$this-errors;
*Returnerrorscodes,ifany
*@returnarray
publicfunctiongetCodes()
return$this-codes;
*getRules
*@returnarray
publicfunctiongetRules()
return$this-rules;
*getData
*@returnarray
publicfunctiongetData()
return$this-data;
*getErrors
*@returnarray
publicfunctiongetErrors()
return$this-errors;
*getMessages
*@returnarray
publicfunctiongetMessages()
return$this-messages;
*setRule
*@paramstring$key
*@paramstring$value
*@return$this
publicfunctionsetRule($key,$value)
$this-rules[$key]=$value;
return$this;
*emptyRules
*@return$this
publicfunctionemptyRules()
$this-rules=array();
return$this;
*sometimes
*@paramstring$attribute
*@paramstring|array$rules
*@paramcallable$callback
*@return$this
publicfunctionsometimes($attribute,$rules,callable$callback)
$this-validator-sometimes($attribute,$rules,$callback);
return$this;
*resolver
*@paramClosure$resolver
*@return$this
publicfunctionresolver(Closure$resolver)
Validator::resolver($resolver);
return$this;
*replacer
*@paramClosure$resolver
*@return$this
publicfunctionreplacer($replace,Closure$resolver)
Validator::replacer($replace,$resolver);
return$this;
*extendImplicit
*@paramClosure$resolver
*@return$this
publicfunctionextendImplicit($extendImplicit,Closure$resolver)
Validator::extendImplicit($extendImplicit,$resolver);
return$this;
*extend
*@paramstring$rule
*@param\Closure|string$extension
*@paramstring$message
*@return$this
publicfunctionextend($rule,$extension,$message=null)
Validator::extend($rule,$extension,$message);
return$this;
*before(extend(),resolver())
*@return$this
publicfunctionbefore()
*after(sometimes())
*@return$this
publicfunctionafter()
新建中間件
namespaceApp\Http\Middleware;
useClosure;
use\Illuminate\Http\Request;
classValidateAdminMiddleware
*Thisnamespaceisappliedtothecontrollerroutesinyourroutesfile.
*Inaddition,itissetastheURLgenerator'srootnamespace.
*@varstring
protected$namespace='App\Http\Validators';
*Handleanincomingrequest.
*@param\Illuminate\Http\Request$request
*@param\Closure$next
*@returnmixed
publicfunctionhandle(Request$request,Closure$next,$validator=null)
if($request-isMethod('POST')){
$type=$request-segment(1);
if($validator){
$validator=$this-namespace.'\\'.studly_case($type).'\\'.studly_case($validator).'Validator';
$validator=new$validator($request-all());
if(!$validator-passes()){
if($request-isAjax()){
return$validator-errors()-first();
}else{
returnredirect()-back()
-withErrors($validator-getValidator())
-withInput();
return$next($request);
新建TestTestValidator
namespaceApp\Http\Validators\Admin;
useApp\Http\Validators\AbstractValidator;
classTestValidatorextendsAbstractValidator
*Validationrules
*@varArray
protected$rules=array(
'name'=['required','test','min:1'],
*Validationmessages
*@varArray
protected$messages=array(
'name.required'='必填',
'name.min'='最少1個字符',
'name.test'='測試',
*自定義驗證規(guī)則或者擴(kuò)展Validator類
publicfun
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)業(yè)園區(qū)租賃運(yùn)營合作協(xié)議書及要點
- 金融投資合規(guī)培訓(xùn)
- 員工離職管理保密協(xié)議
- 環(huán)保技術(shù)轉(zhuǎn)讓與合作協(xié)議
- 車輛占用協(xié)議書范本
- 車間行車梁安裝合同協(xié)議
- 未交就業(yè)協(xié)議書
- 車房轉(zhuǎn)讓協(xié)議書合同
- 款項代收協(xié)議書
- 水井共用協(xié)議書
- 2025-2030中國核電用鋼行業(yè)市場發(fā)展分析及發(fā)展前景與投資戰(zhàn)略研究報告
- 護(hù)理核心制度培訓(xùn)與質(zhì)量提升
- 退行性腰椎滑脫癥診療指南(2025年版)課件
- 車間沖壓模具管理制度
- 2025年春初中語文七年級下冊教案設(shè)計 15 青春之光
- 2021碳纖維復(fù)合芯導(dǎo)線配套金具技術(shù)條件 第2部分:接續(xù)管
- 語言學(xué)概論知到課后答案智慧樹章節(jié)測試答案2025年春湖州師范學(xué)院
- 2025-2030中國印刷電路板(PCB)行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2025年中國萬壽菊干花顆粒行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 鹽城吉電綠氫制儲運(yùn)加用一體化(一期)示范項目報告書
- 天津東疆綜合保稅區(qū)管理委員會招聘筆試真題2024
評論
0/150
提交評論