@UniqueEntity自定义消息未翻译

时间:2016-07-01 07:30:26

标签: doctrine symfony

如何在@UniqueEntity约束中翻译消息?

我遇到这种情况:

/**
 * @ORM\Entity
 * @ORM\Table(name="sites")
 * @UniqueEntity(
 *     fields={"url"},
 *     message="This url is already registered. Please choose a different url."
 *     )
 */
class Site
{

如果我保留默认消息("此值已被使用。")它会自动翻译一些捆绑的字符串...但我找不到任何有关如何翻译的文档自定义错误消息。 (我尝试将该字符串放在默认域messages中,但它没有被翻译)

2 个答案:

答案 0 :(得分:3)

我发现了。

该域名验证者而非消息,因此您必须在validators域中创建转换文件,例如:

// app/Resources/translations/validators.it.php

return [
'This url is already registered. Please choose a different url.'=>'Questo url è già registrato. Scegli un url diverso.',
];

答案 1 :(得分:0)

这是我的解决方案。

首先,为您的消息设置标识符:

/**
 * @ORM\Entity
 * @ORM\Table(name="sites")
 * @UniqueEntity(
 *     fields={"url"},
 *     message="entity.site.unique"
 *     )
 */
class Site
{

然后创建以下文件(messages.XX.yml),每个文件一个。

entity:
  site:
    unique: "Your message"

我希望这有帮助。