symfony - Easy Admin - 在 Show Action 中显示完整的国家名称

标签 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;

最佳答案

我认为最好的解决方案是使用内置的 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.countryaddress.entity.countryName .

关于symfony - Easy Admin - 在 Show Action 中显示完整的国家名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52494219/

相关文章:

symfony - 如何在 Symfony 应用程序中为 Doctrine 配置 Redis 缓存

php - 使用 Doctrine 删除与 Symfony 3 的 3 实体(一对多对一)关联

forms - 未显示隐藏字段的 symfony 表单验证消息

events - 在 symfony2 登录成功之后和重定向之前做些什么?

css - EasyAdminBundle : Add a custom view that's not based on entity

Symfony EasyAdminBundle : Filter entities in assotiation field

php - 轻松管理 : How to customize a field template in the form view?

symfony - CKEditor 不能在 Symfony 4.4 上使用 EasyAdmin 3

php - Symfony 4 easy admin 和 vich uploader 捆绑错误

mysql - EasyAdmin 3.1 CrudControllers Symfony