在我的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的/组件/验证/约束/ 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和gb所需的一切。
或者这是一个错误吗? (这似乎是我使用的版本中的一个错误.2.3.1现在已修复为2.3.5) - 感谢Ritter提供此信息。
答案 0 :(得分:2)
我认为这是一个错误,因为相同的代码在Symfony 2.1中正常工作。
我在这里提出了一个错误报告:
https://github.com/symfony/symfony/issues/9180
请随时添加评论或更多信息。
答案 1 :(得分:0)
我相信如果你想指定倍数,你需要使用管道(|)
所以喜欢这个
locale: en|fr|de
希望有所帮助。