我有一条规则:
'price' => 'required|numeric|digits:8,13'
在验证时,我只允许输入8位或13位数字。我的代码无法正常工作。如果我写8位数字,则验证说我需要写13位数字。我该如何解决?
答案 0 :(得分:2)
好吧,您可以使用正则表达式规则来模仿8位或13位数字。
'price' => array(
'required',
'numeric',
'regex:/^(\d{8}|\d{13})$/',
)
答案 1 :(得分:1)
您可以根据需要创建自定义验证。 在此处查看laravel文档。 https://laravel.com/docs/5.8/validation
Validator::extend('custom_rule_name',function($attribute, $value, $parameters){
return $value == 13 || $value == 8;
});
答案 2 :(得分:0)
您需要一个custom validation rule。通过功能为:
public function passes($attribute, $value)
{
$digits = strlen((string)$value);
return $digits === 8 || $digits === 13;
}