Symfony 2 - 使用NotBlank&类型约束

时间:2012-02-29 16:04:47

标签: symfony

当我将NotBlank和Type验证添加到整数字段时,我在验证表单组件时遇到问题。

我的validation.yml如下所示:

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

我的FormType文件如下所示:

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

当我在字段中键入'abc'并提交,验证表单和getErrors()时,报告的错误是 -

This value is not valid.
You must specify a bar.

任何想法都出错了?我正在运行Symfony 2.0.10

4 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。最后,我使用了一个普通的'text'字段,并使用正则表达式制作了我自己的'Integer'验证器。

答案 1 :(得分:0)

我不确定但也许这有帮助:

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

检查this

答案 2 :(得分:0)

您的问题可能与this问题有关。从问题的讨论看来,问题的解决方案似乎是用这个代码替换line 40 of the DelegatingValidator.php

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

我还没有测试过它。你可以尝试告诉结果:)。

答案 3 :(得分:0)

我很晚但这可以帮助

  • 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.'