跳到内容

EasyAdmin 国家/地区字段

编辑此页

此字段用于表示与存储在某个属性中的国家/地区代码相对应的名称和/或旗帜。

表单页面(编辑和新建) 中,它看起来像这样

Default style of EasyAdmin country field

基本信息

  • PHP 类: EasyCorp\Bundle\EasyAdminBundle\Field\CountryField
  • 用于存储此值的 Doctrine DBAL 类型: string
  • 用于渲染字段的 Symfony 表单类型: CountryType
  • 渲染为:

    1
    <select> ... </select>

提示

EasyAdmin 包含了所有有效的国家/地区旗帜作为 SVG 文件。您无需执行任何操作即可使后端渲染这些旗帜。但是,如果您想在自己的自定义模板中渲染旗帜,可以使用 EasyAdmin 中包含的 Twig 组件,如下所示

1
<twig:ea:Flag countryCode="CR" height="18"/>

4.20.0

`<twig:ea:Flag/>` 组件在 EasyAdmin 4.20.0 中引入。

选项

allowMultipleChoices

默认情况下,国家/地区选择器允许选择零个(如果属性可为空)或一个值。如果您想允许选择任意数量的值,请将此选项设置为 true

1
yield CountryField::new('...')->allowMultipleChoices();

如果您允许选择多个值,您可能需要更改当前的实体,因为 EasyAdmin 将尝试获取/设置包含国家/地区代码的数组,而不是仅包含一个国家/地区代码的字符串。您可以使用 Doctrine 数组类型的实体,或者您可以继续使用字符串属性并手动处理数组到字符串的转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MyEntity
{
    // ...

    public function getCountry(): ?array
    {
        return '' === $this->country ? null : explode('|', $this->country);
    }

    public function setCountry(?array $countryCodes): self
    {
        $this->country = null === $countryCodes ? '' : implode('|', $countryCodes);

        return $this;
    }
}

includeOnly

默认情况下,国家/地区选择器显示由 ICU 项目 定义的所有国家/地区,该项目与 Symfony 和许多其他技术项目使用的项目相同。使用此选项仅显示给定的国家/地区代码

1
yield CountryField::new('...')->includeOnly(['AR', 'BR', 'ES', 'PT']);

remove

默认情况下,国家/地区选择器显示由 ICU 项目 定义的所有国家/地区,该项目与 Symfony 和许多其他技术项目使用的项目相同。使用此选项从列表中删除给定的国家/地区代码

1
yield CountryField::new('...')->remove(['AF', 'KP']);

showFlag

默认情况下,国家/地区旗帜在只读页面(indexdetail)和表单页面中使用的选择器中都显示。如果您想隐藏旗帜,请使用此选项

1
yield CountryField::new('...')->showFlag(false);

showName

默认情况下,国家/地区名称在只读页面(indexdetail)和表单页面中使用的选择器中都显示。如果您想隐藏名称,请使用此选项

1
yield CountryField::new('...')->showName(false);

useAlpha3Codes

默认情况下,该字段期望给定的国家/地区代码是遵循 ISO 3166-1 alpha-2 格式的 2 个字母的值。如果您使用 ISO 3166-1 alpha-3 格式的 3 个字母的值存储国家/地区代码,请使用此选项

1
yield CountryField::new('...')->useAlpha3Codes();
本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可获得许可。
目录
    版本