1

在我的 parameters.yml 我有这个:

parameters:
    locale: en-gb

在我的用户实体中,我有这个:

/**
 * @ORM\Column(name="Country", type="string", length=2)
 * @Assert\Country(message = "The country '{{ value }}' is not a valid country.")
 * @Assert\NotBlank()
 */
private $country;

当我使用表单时,验证会抱怨:“国家‘美国’不是有效国家。”

所以我在:/src/Symfony/Component/Validator/Constraints/CountryValidator

并遇到:

$countries = Intl::getRegionBundle()->getCountryNames();

所以我把它放在我的代码中,看看里面有什么。里面有什么,是这样的:

array(1) { ["UM"]=> string(27) "U.S. Minor Outlying Islands" } 

而不是它应该拥有的258个国家。

如果我将语言环境更改为en而不是en-gb,我会得到数组中的 258 个国家/地区。

所以,我的问题是我的 parameters.yml 是否应该是这样的?

parameters:
    locale: en, en-gb

还是这样的?这样它就可以从 en 中获取所有内容并覆盖 en-gb 所需的内容。

或者这是一个错误?(这似乎是我使用的版本中的一个错误。2.3.1,现在已在 2.3.5 中修复) - 感谢 Ritter 提供此信息。

4

2 回答 2

2

我相信这是一个错误,因为相同的代码在 Symfony 2.1 中可以正常工作。

我在这里提出了一个错误报告:

https://github.com/symfony/symfony/issues/9180

请随时添加评论或更多信息。

于 2013-09-30T20:17:08.980 回答
0

我相信如果你想指定倍数,你需要使用管道(|)

所以像这样

locale: en|fr|de

希望有帮助。

于 2013-09-17T18:19:59.327 回答