我正在使用CountryType
中的Symfony
字段。它现在显示荷兰的 NL 等国家/地区首字母缩写。但我想显示完整的国家/地区名称。
如何显示完整的国家/地区名称而不是国家首字母?
代码如下:
use Symfony\Component\Intl\Intl;
...
$countries = Intl::getRegionBundle()->getCountryNames();
$builder->add('companyaddresscountry', ChoiceType::class, array(
'choices' => $countries, 'label'=>'Country'));
答案 0 :(得分:2)
您的选择不是'as values'。您可以使用php的函数array_flip
翻转数组$countries = Intl::getRegionBundle()->getCountryNames();
$builder->add('companyaddresscountry', ChoiceType::class, array(
'choices' => array_flip($countries),
'label'=>'Country'
));
或在表单字段'choices_as_values'中添加参数(不推荐使用此选项):
此选项已弃用,您应将其从3.x项目中删除(删除它将无效)。出于2.x的目的,请参阅2.7文档。
$countries = Intl::getRegionBundle()->getCountryNames();
$builder->add('companyaddresscountry', ChoiceType::class, array(
'choices' => $countries,
'label'=>'Country',
'choices_as_values' => true
));
答案 1 :(得分:0)
在数组$国家/地区内,您可以拥有一个数组,其中键只有2个字母,但值是全名,如下所示:
$countries
等于
array('AF' => 'Afghanistan', ...)
因此,您可以解析数组并仅获取全名的值
$fullname = [];
foreach ($countries as $key => $value) {
$fullname[] = $value;
}