Вы можете сделать что-то вроде этого:
$min = 9;
$max = 12;
->add('phone', NumberType::class, array(
'constraints' => new Range([
'min' => 10 ** ($min - 1),
'max' => (10 ** $max) - 1,
'minMessage' => "You need to enter at least $min characters",
'maxMessage' => "You need to enter no more than $max characters"
]),
'label' => false,
'required' => 'required',
'attr' => array('class' => 'form-control form-control-lg validate')
))
Это проверяет, что число длиной от 9 до 12 символов (включительно), используя наименьшее 9-значное число и 12-значное число в качестве границ.
Будьте осторожны, хотя при работе с телефонными номерами как с номерами, как правило, менее подвержены ошибкам использование строк.Поскольку вам не нужно рассчитывать с номерами телефонов, использование строк это нормально.С целым числом вы не можете поддерживать специальные символы, такие как «+», «/» и «-».Вы также рискуете столкнуться с переполнением.