日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用laravel怎么對請求參數(shù)進行校驗-創(chuàng)新互聯(lián)

使用laravel怎么對請求參數(shù)進行校驗?針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為南雄企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站制作,南雄網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

首先,我們需要建一個路由,暫時就叫"test"吧,然后test對應(yīng)著TestController中的test方法。


Route::get('test', 'TestController@test');
class TestController extends Controller
{
 public function test(Request $request)
 {

 }
}

假設(shè)請求的參數(shù)中需要id、title這兩個參數(shù),并且id必須是數(shù)字,且長度是1到10,并且是DB中的一行數(shù)據(jù)的主鍵、title必須是字符串,id和title都不能為空。一般的框架在寫的時候就會先取到id和title,然后對取到的id和title進行“是否是空”、“是否長度在1到10之間”、“通過id能否在數(shù)據(jù)庫中找到數(shù)據(jù)”等等繁瑣的校驗,利用laravel的“Validate”你只需要這樣就可以了。

public function test(Request $request)
{
 $validate = Validator::make($request->all(), [
  'id' => 'required|integer|between:1,10',
  'title' => 'required|string'
 ]);

如果沒有錯誤,就會繼續(xù)往下進行邏輯處理。假如說校驗不通過,例如id不在1和10之間,可以通過“validate”實例中的“errors()”方法,得到所有的錯誤,然后將錯誤放回給客戶端,如果想返回錯誤隊列中的頭一個錯誤,就寫$validate->errors()->first(),如果想返回所有錯誤列表,就寫“$validate->errors()->all()”。如下:

if($validate->fails())
{
 return $validate->errors()->first();
}

或者返回

if($validate->fails())
{
 return $validate->errors()->all();
}

假如請求參數(shù)中的id不是一個數(shù)字,而是字符串,結(jié)果就會出現(xiàn):

使用laravel怎么對請求參數(shù)進行校驗

你可能會想:返回結(jié)果能否使中文?答案當然是可以,你可以針對自己的程序,換成你任何想要的語言:

在項目中找到“resources”目錄下的“l(fā)ang” 中的 “en”文件夾中的“validation.php”文件,

使用laravel怎么對請求參數(shù)進行校驗

打開,然后找到這一行:

'integer'    => 'The :attribute must be an integer.',

這句話除了“:attribute”是不是其他字和返回結(jié)果一模一樣?或許你已經(jīng)猜到了:這就是你調(diào)用的‘integer'方法的返回結(jié)果,“:attribute”是個變量,是你傳的“id”!現(xiàn)在,你可以寫成任何語言,我把它改為中文:

'integer'    => ':attribute 必須是數(shù)字!'

然后我們再看返回結(jié)果:

使用laravel怎么對請求參數(shù)進行校驗

完美!只要你利用Validator的make方法,在請求參數(shù)數(shù)組中對應(yīng)上‘integer'、“required”等字符串就可以利用laravel提供的服務(wù),對請求參數(shù)進行“數(shù)字”、“判空”等校驗,laravel提供的眾多校驗方法,可以在laravel官網(wǎng)查詢。(ps:或者直接查詢validation.php這個文件!)

你或許還會想:我現(xiàn)在校驗了id是否為空,id是否是數(shù)字,我還想校驗id對應(yīng)的數(shù)據(jù)能否在數(shù)據(jù)庫中查得到!這能實現(xiàn)嗎?

答案是:完全可以!在上篇文章中我介紹了laravel核心是一個IOC容器,你可以很方便的擴展任何服務(wù)注入到容器中!自定義validate服務(wù)也不例外!

我們首先創(chuàng)建一個provider

php artisan make:provider TestProvider

然后在boot方法里寫下:

public function boot()
{
 Validator::extend('user', function($attribute, $value, $parameters) {
  return !is_null(User::find($value));
 });
}

這行代碼很好理解吧:1、調(diào)用“Validator”的“extend”方法。2、傳給他倆個參數(shù),一個是“user”,一個是返回值為boolen類型的callback 函數(shù)。3、函數(shù)中判斷User表中是否含有$value值數(shù)據(jù),如果有,返回true,如果沒有,返回false。

然后在“config”的“app.php”中注冊上這個provider。(如果不清楚,可以去看前一篇文章“三分鐘學會laravel服務(wù)擴展”)

然后在validation.php中寫上:

'user'     => '此用戶不存在!',

然后在校驗方法中添上“user”

$validate = Validator::make($request->all(), [
 'id' => 'required|integer|between:1,10|user',
 'title' => 'required|string'
]);

數(shù)據(jù)庫中插入數(shù)據(jù),開始檢驗:

使用laravel怎么對請求參數(shù)進行校驗

Laravel 是什么

Laravel 是一套簡潔、優(yōu)雅的PHP Web開發(fā)框架。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構(gòu)建一個完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡潔、富于表達力。

關(guān)于使用laravel怎么對請求參數(shù)進行校驗問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


新聞名稱:使用laravel怎么對請求參數(shù)進行校驗-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/ceopsj.html