我有一个带有字段 url
的实体,在发送基于同一实体的表单时,该实体将被保存到数据库中。
我可以在 validation.yml
中设置对表单类型的约束以及 NotBlank
和 Url
等自定义消息。没关系。但是,当我尝试保留数据库中已存在的实体时,我收到一条错误消息,指出该值已存在 (url
)。
如何为此 UniqueEntity
约束设置自定义消息?
我尝试在validation.yml中添加UniqueEntity
,但它位于不同的命名空间中,我无法理解它是如何工作的,或者如何设置它。默认情况下是存在的,因为 url
在原始实体注释中被定义为唯一字段,但是如何更改错误消息?
最佳答案
我刚刚找到了解决我自己问题的方法。
所有验证都可以在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"
它非常灵活,我想如果数据库中已经存在不同的字段,我不知道如何设置不同的消息...
关于php - 交响乐2 : Doctrine constraints in forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9692557/