简易管理员-在“显示操作”中显示完整的国家名称

时间:2018-09-25 08:54:58

标签: symfony symfony2-easyadmin easyadmin

我有一个需要输入国家/地区的地址实体。在关联的表单中,我使用的是Symfony的CountryType,它显示了用户友好的国家/地区选择,并将其缩写存储在实体中(例如DE代表德国,CH代表瑞士)。

要在管理面板的显示操作中显示地址的国家/地区,我在easy_admin.yaml中使用以下行:

- { property: country, label: 'address.entity.country' }

问题:

这仅显示缩写,而不显示国家的实际名称。我该如何更改?

国家/地区地址实体:

/**
 * @ORM\Column(type="string", length=255)
 */
private $country;

1 个答案:

答案 0 :(得分:4)

我认为最好的解决方案是使用内置的Symfony intl component

composer require symfony/intl安装组件。

然后在您的实体中可以use Symfony\Component\Intl\Intl;

我建议在您的实体上创建一个名为countryName的新属性,无论您何时设置国家/地区代码,都将调用该属性的setter。您的二传手可能看起来像这样:

public function setCountryName (string $countryCode) 
{
    $this->countryName = Intl::getRegionBundle()->getCountryName(strtoupper($countryCode));
}

然后在您的yaml文件中将address.entity.country更改为address.entity.countryName