Symfony:我如何获得完整的国家/地区名称

时间:2017-06-19 12:10:41

标签: php symfony

我正在使用CountryType中的Symfony字段。它现在显示荷兰 NL 等国家/地区首字母缩写。但我想显示完整的国家/地区名称。

如何显示完整的国家/地区名称而不是国家首字母?

代码如下:

use Symfony\Component\Intl\Intl;
...

$countries = Intl::getRegionBundle()->getCountryNames();

$builder->add('companyaddresscountry', ChoiceType::class, array(
                'choices' => $countries, 'label'=>'Country'));

2 个答案:

答案 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;
}