Laravel验证数字

时间:2019-03-19 09:38:00

标签: php laravel

我有一条规则:

'price' => 'required|numeric|digits:8,13'

在验证时,我只允许输入8位或13位数字。我的代码无法正常工作。如果我写8位数字,则验证说我需要写13位数字。我该如何解决?

3 个答案:

答案 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;
}