在我的参数.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/Constraint/CountryValidator
并遇到:
$countries = Intl::getRegionBundle()->getCountryNames();
所以我把它贴在我的代码中,看看里面有什么。里面的内容是这样的:
array(1) { ["UM"]=> string(27) "U.S. Minor Outlying Islands" }
而不是它应该有的258个国家。
如果我将我的语言环境更改为 en 而不是 en-gb,我会得到数组中的 258 个国家/地区。
所以,我的问题是我的参数.yml 是否应该看起来像这样?
parameters:
locale: en, en-gb
还是诸如此类?因此,它从 en 中获取所有内容并覆盖 en-gb 所需的内容。
还是这是一个错误?(这似乎是我正在使用的版本中的一个错误。 2.3.1,现已在 2.3.5 中修复) - 感谢里特提供此信息。
我相信
这是一个错误,因为相同的代码在Symfony 2.1中可以正常工作。
我在这里提出了一个错误报告:
https://github.com/symfony/symfony/issues/9180
请随时添加评论或更多信息。
我相信如果你想指定倍数,你需要使用管道(|)
所以像这样
locale: en|fr|de
希望有帮助。