【问题标题】:Symfony 3 Translate error validators rangeSymfony 3翻译错误验证器范围
【发布时间】:2016-11-08 04:37:34
【问题描述】:

我想翻译 Range 的以下错误信息: 此值应为 1990 年 1 月 1 日凌晨 12:00 或更长时间。

我正在使用 Symfony 的功能来解决除此之外的其他错误:

$this->get('translator')->trans($err, [], 'validators')

我应该用别的东西来翻译这个错误吗?

【问题讨论】:

  • $err 的值是多少?什么包含验证器文件?
  • 你使用@Assert\Range或类似的东西吗?如果是这样,您可以通过在message="my_range_message" 中输入id 来简单地翻译消息,其中my_range_message 在您的validators.en.ymlvalidators.fr.yml 等中找到。验证消息的翻译应该在模型(实体)中完成,而不是在控制器中完成,除非您有一些特定要求。
  • @Matteo:我在 $err 上有这个:这个值应该是 1990 年 1 月 1 日凌晨 12:00 或更多。
  • @cezar 是的,我使用这个范围,但是是的,我找到了翻译的 id,但我不知道如何调用正确的

标签: php symfony-forms symfony translate


【解决方案1】:

如果我理解正确,您可以按照 cezar 的建议进行操作,例如,您可以使用注释:

MyEntity.php

/**
 * @Assert\Range(
 *      min = "now",
 *      max = "+5 hours",
 *      minMessage = "myMinMessage"
 * )
 */
private $myDate;

并在您的文件中添加翻译,例如:

validators.en.yml

myMinMessage: bla bla value should be {{ limit }} or more. You entered {{ value }}

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    相关资源
    最近更新 更多