前言
要驗(yàn)證一個(gè)數(shù)字的確定值,看了表單驗(yàn)證文檔
size:value驗(yàn)證的字段必須具有與給定值匹配的大小。對(duì)于字符串來(lái)說(shuō),value 對(duì)應(yīng)于字符數(shù)。對(duì)于數(shù)字來(lái)說(shuō),value 對(duì)應(yīng)于給定的整數(shù)值。對(duì)于數(shù)組來(lái)說(shuō), size 對(duì)應(yīng)的是數(shù)組的 count 值。對(duì)文件來(lái)說(shuō),size 對(duì)應(yīng)的是文件大?。▎挝?kb )。
寫(xiě)的驗(yàn)證規(guī)則是這樣的
$data = ['age' => 9];
$validator = \Illuminate\Support\Facades\Validator::make($data, ['age' => 'required|size:9']);
if ($validator->fails()) {
dd($validator->errors()->first());
}
dd('pass');
我以為只要在驗(yàn)證的數(shù)據(jù) 9 是整數(shù),他就會(huì)直接按數(shù)字的方式驗(yàn)證,結(jié)果直接打印了錯(cuò)誤消息The age must be 9 characters.這個(gè)錯(cuò)誤消息很明顯的是提示字符串長(zhǎng)度的,然后看了一下才發(fā)現(xiàn)還需要加上一個(gè)條件。numeric或者integer,
看源碼直接跳到\Illuminate\Validation\Validator::fails()
查看驗(yàn)證
主要驗(yàn)證的方法是這個(gè)$this->validateAttribute($attribute, $rule);
前面這些是過(guò)濾,驗(yàn)證文件上傳的
這里動(dòng)態(tài)拼接了一個(gè)方法,通過(guò)打印得知是validateSize
然后在這個(gè)類(lèi)用的 trait 中找到這個(gè)方法ValidatesAttributes::validateSize
其實(shí)這里已經(jīng)可以看到驗(yàn)證$hasNumeric
$hasNumeric里放的是這個(gè)
再看一下他是如何驗(yàn)證的
如果沒(méi)有'numeric'或者'integer'會(huì)返回 null,就會(huì)導(dǎo)致$hasNumeric等于 false
所以就不會(huì)把這個(gè)當(dāng)做數(shù)字驗(yàn)證了
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
您可能感興趣的文章:- Laravel5.1 框架表單驗(yàn)證操作實(shí)例詳解
- Laravel框架表單驗(yàn)證操作實(shí)例分析
- Laravel 中使用 Vue.js 實(shí)現(xiàn)基于 Ajax 的表單提交錯(cuò)誤驗(yàn)證操作
- Laravel框架表單驗(yàn)證詳解
- Laravel 5框架學(xué)習(xí)之表單
- Laravel實(shí)現(xiàn)表單提交
- Laravel 5框架學(xué)習(xí)之子視圖和表單復(fù)用
- laravel-admin表單提交隱藏一些數(shù)據(jù),回調(diào)時(shí)獲取數(shù)據(jù)的方法
- laravel-admin解決表單select聯(lián)動(dòng)時(shí),編輯默認(rèn)沒(méi)選上的問(wèn)題
- laravel5.2表單驗(yàn)證,并顯示錯(cuò)誤信息的實(shí)例
- laravel5表單唯一驗(yàn)證的實(shí)例代碼
- laravel框架學(xué)習(xí)記錄之表單操作詳解