私の 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;
フォームを使用すると、「国 'US' は有効な国ではありません」というエラー メッセージが表示されます。
だから私は探し回った: /src/Symfony/Component/Validator/Constraints/CountryValidator
そして出くわした:
$countries = Intl::getRegionBundle()->getCountryNames();
だから私はそれを自分のコードに貼り付けて、その内容を確認しました。入っていたのは、次のとおりです。
array(1) { ["UM"]=> string(27) "U.S. Minor Outlying Islands" }
それが持つべき258か国ではなく。
ロケールを en-gb ではなく en に変更すると、配列に 258 か国が含まれます。
私の質問は、私の parameters.yml がこのように見えるべきかどうかです。
parameters:
locale: en, en-gb
またはそのようなもの?そのため、en からすべてを取得し、en-gb で必要なものをオーバーライドします。
それともこれはバグですか?(これは、私が使用していたバージョン 2.3.1 のバグのようで、現在は 2.3.5 で修正されています) - この情報を提供してくれた Ritter に感謝します。