我对laravel验证这样的:如何在laravel上进行数千次验证?
return Validator::make($data, [
...
'amount' => 'required|integer|min:20000',
]);
我想量的值十万
倍数,以便可以只输入数千
例如倍数值:25000, 50000,151000,200000等
输入的例子不是数千的倍数:25500,50500,151500,200500等
我该怎么办?
我对laravel验证这样的:如何在laravel上进行数千次验证?
return Validator::make($data, [
...
'amount' => 'required|integer|min:20000',
]);
我想量的值十万
倍数,以便可以只输入数千
例如倍数值:25000, 50000,151000,200000等
输入的例子不是数千的倍数:25500,50500,151500,200500等
我该怎么办?
你可以采取一些模使用自定义的验证规则ת实现这个逻辑: https://laravel.com/docs/5.4/validation#custom-validation-rules
这样的事情应该做的:
Validator::extend('mod1000', function ($attribute, $value, $parameters, $validator) {
return $value % 1000 == 0;
});
您可以使用正则表达式这样那样的验证:
return Validator::make($data, [
...
'amount' => 'required|integer|regex:/^[1-9]+[0-9]*000$/',
]);
表达式中的最后三个零为数千。第一个数字应该不是零,它们之间的任何数字都是您的案例的完美验证。
希望你明白。
存在错误:'preg_match():无结尾分隔符'^'找到# –
@SuccessMan您可能需要使用\ – Wreigh
@SuccessMan将其转义出来\我忘了在那里添加'/'。我已更新。 –
是的,我知道。但是我如何在laravel验证中做到这一点。如果laravel验证,则需要在这里添加:''amount'=>'required | integer | min:20000','。但我仍然感到困惑,我怎么才能添加它 –
@SuccessMan看到这个问题https://stackoverflow.com/questions/32036882/laravel-validate-a-integer-field-that-needs-to-be-greater-than - 另一个可能会帮助你 –
@SuccessMan像这样改变你的确认''amount'=>'required | integer | min:20000 | mod1000'。 –