我有一个字段为url
的实体,在发送基于同一实体的表单时,该实体将被持久化到数据库。
我可以在validation.yml
中对表单类型以及NotBlank
和Url
等自定义消息设置约束。没关系。但是,当我试图持久化DB中已经存在的实体时,我会收到一个错误,说该值已经存在(url
)。
如何设置此UniqueEntity
约束的自定义消息?
我尝试在validation.yml中添加UniqueEntity
,但它在一个不同的命名空间中,我无法理解它是如何工作的,也无法理解如何设置它。默认情况下,它就在那里,因为url
在原始实体注释中被定义为唯一字段,但如何更改错误消息??
我刚刚找到了自己问题的解决方案。
所有验证都可以在validation.yml中定义,但由于我使用注释来定义我的实体,所以最好将所有验证、消息等放在这些注释中。
可以为非空白字段设置@Assert'NotBlank
,为唯一验证设置@ORM'UniqueEntity(message="my custom error")
。
很抱歉我的问题充斥着网站,但我希望有人会觉得这很有用。。
附言:注释或YML没有区别,设置是一样的。我想在我的情况下应该是这样的:
Namespace'Class:
constraints:
- Symfony'Bridge'Doctrine'Validator'Constraints'UniqueEntity:
fields: url
message: "My custom message"
它非常灵活,我想如果数据库中已经存在不同的字段,我们不知道如何设置不同的消息。。。