Forms 为什么Symfony2表单显示默认错误值而不考虑验证?
我正在继续研究Symfony2,发现了新的“问题” 让我描述一下这个问题。 我有一个类,它在一个条令实体上构造一个形式。它与中描述的注册表示例相同。唯一的区别是我使用的是教义而不是MongoDB 现在,我在User类中添加了以下字段Forms 为什么Symfony2表单显示默认错误值而不考虑验证?,forms,symfony,annotations,doctrine-orm,validation,Forms,Symfony,Annotations,Doctrine Orm,Validation,我正在继续研究Symfony2,发现了新的“问题” 让我描述一下这个问题。 我有一个类,它在一个条令实体上构造一个形式。它与中描述的注册表示例相同。唯一的区别是我使用的是教义而不是MongoDB 现在,我在User类中添加了以下字段 /** * @Assert\Type(type="integer", message="Not an integer.") * @ORM\Column(type="smallint", name="num") * * @var Smallint
/**
* @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',
));
}
问题就在这里。尽管我通过注释提供了自定义消息,但字段num(即字符串值)的错误输入返回以下错误代码:“此值无效”,而不是“不是整数””
对自定义错误消息的这种遗漏的解释有什么想法吗?尝试添加
'invalid_message' => "Not an integer'
在
buildForm
方法中。是的,我知道!但这是不一样的。这只是个骗局,不是问题的答案。事实上,通过遵循此解决方案,您将为每个无效条目显示相同的错误消息。但是,通过注释可以定义不同的错误类型。无论如何,谢谢。然后您必须在buildForm
方法中将字段设置为文本此值无效
是因为在任何验证发生之前调用了clientTransformer
引发异常。