在我的 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 提供此信息。