9

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

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

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

问题:

这仅显示缩写而不是国家/地区的实际名称。我该如何改变呢?

地址实体中的国家/地区:

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

1 回答 1

4

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

composer require symfony/intl安装组件。

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

我建议在您的实体上创建一个名为 countryName 的新属性,每当您设置国家代码时,都会调用该属性的设置器。你的二传手可能看起来像这样:

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

然后在您的yaml文件中更改address.entity.countryaddress.entity.countryName.

于 2018-09-27T14:59:15.917 回答