Symfony 2 - проверка поля с ограничениями NotBlank и Type - PullRequest
3 голосов
/ 29 февраля 2012

У меня проблемы с проверкой компонента формы, когда я добавил NotBlank и Type validation в поле целого числа.

Мой validation.yml выглядит следующим образом:

Acme\StoreBundle\Entity\Foo:
properties:
    bar:
        - NotBlank: 
              message: You must specify a bar
        - Type:
             type: integer
             message: bar must be an integer

MyФайл FormType выглядит следующим образом:

$builder->add('bar', 'integer', array(
            'label' => bar', 
            'error_bubbling' => true
));

Когда я набираю 'abc' в поле и отправляю, проверяю форму и getErrors (), сообщаются об ошибках:Есть идеи, что не так?Я использую Symfony 2.0.10

Ответы [ 4 ]

1 голос
/ 24 мая 2012

У меня была такая же проблема. В конце я использовал обычное текстовое поле и создал свой собственный валидатор Integer, использующий регулярное выражение.

0 голосов
/ 27 февраля 2015

Я довольно поздно, но это может помочь

  • validation.yml

contactNo:

        - NotBlank: ~ 
        - Regex:
            pattern: '/\d/'
            match:   true
            message: Your contact no. must be a number                
        - Length: 
            min: 10
            max: 15
            minMessage: 'You contact no. must be at least {{ limit }} digits.'
            maxMessage: 'You contact no. can not be greater than {{ limit }} digits.'
0 голосов
/ 01 марта 2012

Ваша проблема может быть связана с этой проблемой. Из обсуждения вопроса кажется, что решение проблемы заменяет строку 40 DelegatingValidator.php на этот код

    if ($form->isRoot() && $form->isSynchronized()) {

Я еще не проверял это. Вы можете попробовать и рассказать о результате:).

0 голосов
/ 29 февраля 2012

Я не уверен, но, возможно, это поможет:

$builder->add('bar', 'integer', array(
        'label' => bar',
        'invalid_message' => 'bar must be an integer'
        'error_bubbling' => true
));

Проверьте это из

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...