驗證器很好用,可以嚴(yán)格的控制輸入,而且$data,返回的就是數(shù)組,可以直接使用,但存在一個問題
沒有傳值的會自動默認(rèn)為null,而我希望可以設(shè)置默認(rèn)值,比如page參數(shù),如果沒有傳的話,可以設(shè)置默認(rèn)為10,這里我建議添加一個defaule()方法來實現(xiàn)。 我跟蹤了input() 發(fā)現(xiàn)方法在workman的包中,所以不好直接更改。
這里寫搜到的方案及不適用原因
歡迎pr
大佬,幫忙合并下 https://github.com/walkor/validation/pull/1
按需求添加了,并且合并了Respect/Validation最新的2.3版本,有了phone驗證(http://www.wtbis.cn/q/8062)等
'phone' => v::phone('cn')->setDefault('16687967488')->setName('手機號')
大佬,在合并下https://github.com/walkor/validation/pull/3
input 方法功能都做到這了上次提交的時候,一下子沒有想到會有多維的驗證場景,配合input和默認(rèn)值的話,強制實現(xiàn)復(fù)雜多維格式的數(shù)據(jù)輸入控制。
function addRule(Request $request, AuthService $authService){
$data = v::input([], [
'app_id' => v::alnum()->setDefault($request->route->param('app_id'),true)->setName('應(yīng)用名'),
'data' => v::input($request->all(), [
'website_id' => v::intVal()->setDefault(0,true)->setName('站點id'),
'rule' => v::stringVal()->setName('api對外路徑'),
'title' => v::stringVal()->setName('api接口名稱'),
])
]);
dump($data);
return toTrue($authService->addRule($data));
}
感謝
@walkor 大佬,我推送了一個新的優(yōu)化
1、添加了mobile用于國內(nèi)手機號驗證,官方的phone會把電話號碼也驗證通過
2、接口添加了setDefault,讓使用->setDefault的方法后,ide也能自動跟蹤,方便開發(fā)
3、input判斷,添加了判斷輸入值是否\Respect\Validation\Validator,不是的話就直接賦值.
$data = v::input($request->post(), [
'aaa' => 1,
'phone' => v::optional(v::mobile())->setTemplate('未綁定/找到手機號'),
'code' => v::stringType()->notEmpty()->setName('驗證碼'),
'type' => v::intVal()->setDefault($this->data['type'],true)->setName('驗證碼類型'),
]);
看下是否幫忙合并下?謝謝