php - 交响乐2 : Doctrine constraints in forms

标签 php symfony doctrine-orm entity

我有一个带有字段 url 的实体,在发送基于同一实体的表单时,该实体将被保存到数据库中。

我可以在 validation.yml 中设置对表单类型的约束以及 NotBlankUrl 等自定义消息。没关系。但是,当我尝试保留数据库中已存在的实体时,我收到一条错误消息,指出该值已存在 (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/

相关文章:

javascript - 更改 w3 示例表过滤器以搜索多列

php - Facebook API 搜索。

php/symfony2 从 URL 中隐藏 app.php

Symfony 2 - 在测试环境中获取错误而不是调试页面/如何在测试环境中将调试设置为 false (Twig ExceptionController)?

php - 如何完全刷新具有@OneToMany 关系的实体?

mysql - 学说 2 : MySql required version

php - 将值从 php 页面传递到其他页面的模式

php - 为什么 Doctrine 说找不到 PDO 驱动程序?

php - 使用 Symfony PHPUnit 桥 ClockMock 设置日期/时间

php - 究竟如何使用 onDelete = "SET NULL"- Doctrine2