2012-03-13 62 views
2

我有一个实体url字段,这个实体被持久化到数据库uppon基于同一个实体发送一个表单。Symfony 2:形式的学说约束

我可以在validation.yml中设置对表单类型的约束以及NotBlankUrl等自定义消息。这很好。但是当我试图坚持DB中已经存在的实体时,我得到一个错误,说明该值已经存在(url)。

如何为此UniqueEntity约束设置自定义消息?

我尝试在validation.yml中添加UniqueEntity,但它位于不同的命名空间中,我无法理解它是如何工作的,或者如何设置它。在默认情况下,couse url被定义为原始实体注释中的唯一字段,但如何更改错误消息?

回答

2

我刚刚找到了解决我自己问题的方法。

所有验证都可以在validation.yml中定义,但由于我使用注释来定义我的实体,因此最好将所有验证,消息等放入这些注释中。

它足以将@Assert\NotBlank设置为非空白字段,@ORM\UniqueEntity(message="my custom error")设置为唯一验证。

我与我的问题充斥网站抱歉,但我希望有人可能会发现这个有用的..

P.S:批注或YML没什么区别,设置是一样的。我想在我的情况下,它应该是这样的:

Namespace\Class: 
    constraints: 
     - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: 
      fields: url 
      message: "My custom message" 

这是很灵活的,以为我看不出我们怎么能设置不同的消息,如果各方面都已经存在于数据库...