前言
要驗證一個數(shù)字的確定值,看了表單驗證文檔
size:value驗證的字段必須具有與給定值匹配的大小。對于字符串來說,value 對應于字符數(shù)。對于數(shù)字來說,value 對應于給定的整數(shù)值。對于數(shù)組來說, size 對應的是數(shù)組的 count 值。對文件來說,size 對應的是文件大?。▎挝?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
其實這里已經(jīng)可以看到驗證$hasNumeric
$hasNumeric里放的是這個
再看一下他是如何驗證的
如果沒有'numeric'或者'integer'會返回 null,就會導致$hasNumeric等于 false
所以就不會把這個當做數(shù)字驗證了
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。