【问题标题】:Symfony Forms: Custom error message without changing the validation rule in validation.ymlSymfony Forms:自定义错误消息而不更改validation.yml中的验证规则
【发布时间】:2015-09-19 16:17:29
【问题描述】:

是否可以在validation.yml(或其他地方)中修改默认错误消息(“此值无效。”)而不更改验证规则?

原因:我有一个

P.S.:这是一种全局更改消息的方法,但我想为每个字段单独设置它。 http://blog.geertvd.be/2011/09/01/custom-validation-messages-for-standard-validators-in-symfony2/

【问题讨论】:

  • 您真的需要为那些故意在选择字段中输入无效数据的用户提供一个很好的验证消息吗?

标签: php validation symfony


【解决方案1】:

您可以在您的实体上使用验证并在那里为字段设置验证消息。像这样的:

# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
    properties:
        gender:
            - Choice: { choices: [male, female], message: "Choose a valid gender." }

也可以对注解或任何其他实体配置做同样的事情。并且翻译也可以与全局错误消息相同的方式使用。请参阅 Symfony 书籍验证章节中的详细信息:http://symfony.com/doc/current/book/validation.html

【讨论】:

  • 但是选择(在您的示例中为 [男性,女性])在数据库中。所以我不能在 yml 文件中列出它们。
  • 请记住,这只是一个示例,在您的情况下,您只能有消息选项,只有当您想使用以下两个选项限制输入时,您才应该提供选择。还有一件事,你将把这个验证的东西放在你的实体上,这个实体将如何显示你将在你的 FormType 类中设置。如果你在你的实体中使用注解,那么你可以有这样的东西:symfony.com/doc/current/book/…
  • 也许你不应该使用@Assert/Choice,也许在你的情况下最好使用@Assert/NotBlank?取决于您要检查的内容,并为该案例设置消息。更重要的是,您可以一次检查多项内容,并为每个案例设置消息。
【解决方案2】:

如果我是正确的,您也可以只翻译“此值无效”消息:

validators.en.yml

author.name.not_blank:请输入作者姓名。

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 2015-09-07
    • 2012-03-24
    • 2017-04-12
    • 2018-04-30
    • 2011-04-29
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多