当我将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
答案 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)
我很晚但这可以帮助
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.'