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