63

foo.blade.php

<input type="text" name="national-id" />

FooController.php

$rules = [
    'national-id' => 'required|size:10|numeric'
];

the national-id field should contain 10 digits and I actually expected the code above to validate this , but instead It will check If the national-id exactly equals to 10 or not ...

how can I validate the length of a numeric field?

Marcin Nabiałek
  • 109,655
  • 42
  • 258
  • 291
bobD
  • 1,037
  • 2
  • 9
  • 17

3 Answers3

125

In fact you don't need to use digits_between rule. You can use digits rule so according to documentation it will be enough to use:

$rules = [
    'national-id' => 'required|digits:10'
];

without numeric rule because digits rule also verify if given value is numeric.

Marcin Nabiałek
  • 109,655
  • 42
  • 258
  • 291
55

When using size on a number it will check if the number is equal to the size, on string, it will check the amount of characters, for number you should use :

'number' => 'required|numeric|digits_between:1,10'
Carlos
  • 1,261
  • 11
  • 27
16

In laravel the size validation on a field that's numeric will indicate the max integer it cannot be larger than.

Use digits_between:

   'national-id' => 'required|digits_between:10,10|numeric' 
Ray
  • 40,256
  • 21
  • 101
  • 138