为什么Symfony2表单显示默认错误值,尽管验证?

时间:2012-04-19 19:35:26

标签: forms symfony annotations doctrine-orm validation

我正在继续研究Symfony2并找到新的“问题”!

让我来描述一下这个问题。 我有一个类在Doctrine Entity上构造一个表单。它与this page of the official docs中描述的注册表单示例相同。唯一的区别是我使用Doctrine而不是MongoDB。

现在,我将以下字段添加到User类

 /**
 * @Assert\Type(type="integer", message="Not an integer.")     
 * @ORM\Column(type="smallint", name="num")
 * 
 * @var Smallint $num
 * 
 */
protected $num; 

然后,我通过添加以下行更新了类 UserType 中的函数 buildForm

public function buildForm(FormBuilder $builder, array $options)
{
    ...
    $builder->add('num', 'integer', array(
        'label' => 'Insert a number',
        ));
}

这是问题所在。尽管我通过Annotation提供了自定义消息,但字段 num (即字符串值)的错误输入会返回以下错误代码:“此值无效”而不是“不是整数”。

有关此错误解释自定义错误消息的任何想法吗?

1 个答案:

答案 0 :(得分:3)

尝试添加

'invalid_message' => "Not an integer'

buildForm方法中。