insitaction/easyadmin-fields-bundle

为 Insitaction 提供的一套 easyadmin 字段和有用的助手

安装次数: 3,440

依赖者: 0

建议者: 0

安全: 0

星星: 13

关注者: 1

分支: 4

公开问题: 1

类型:symfony-bundle

5.1.0 2024-02-02 23:52 UTC

This package is auto-updated.

Last update: 2024-09-03 01:02:28 UTC


README

安装

运行以下命令以在您的应用程序中安装 EasyAdminFields

$ composer require insitaction/easyadmin-fields-bundle

使用组件资源

// DashboardController.php

use Insitaction\EasyAdminFieldsBundle\EasyAdminFieldsBundle;

public function configureAssets(): Assets
{
    $assets = parent::configureAssets();
    
    return EasyAdminFieldsBundle::configureAssets($assets);
}

无助手方法

// DashboardController.php

use Insitaction\EasyAdminFieldsBundle\Asset\AssetPackage;

public function configureAssets(): Assets
{
    $jsAsset = Asset::new('app.js')->package(AssetPackage::PACKAGE_NAME);
    $cssAsset = Asset::new('app.css')->package(AssetPackage::PACKAGE_NAME);

    return parent::configureAssets()
        ->addJsFile($jsAsset)
        ->addCssFile($cssAsset);
}

字段

掩码字段

掩码字段允许您根据某个字段的值显示或隐藏其他字段

用法

  • 使用 MaskField 包装器
MaskField::adapt(
    BooleanField::new('hasAuthor'),
    [
        "true" => ['author']
    ]
)
  • 直接向字段添加表单类型选项
BooleanField::new('hasAuthor')
    ->setFormTypeOptions([ 
        'row_attr' => [
            'data-controller' => 'mask-field',
            'data-mask-field-map' => MaskField::encodeMap([
                "true" => ['author']
            ])
        ],
    ])

配置

映射配置的工作方式如下

  • 键对应输入值
  • 值是一个字段名称数组

使用此映射配置

[
    "true" => ['author']
]

当输入值为 true 时,将显示 author 字段,否则将隐藏 author 字段

使用此映射配置

[
    "A" => ['field1'],
    "B" => ['field1', 'field2'],
    "C" => ['field2'],
]

当输入值为 AB 时,将显示 field1 字段,当输入值为 BC 时,将显示 field2 字段

相关字段

相关字段可以包装 ChoiceField 或 AssociationField 以使它们的可用选项动态。如果任何相关字段被更新,则将发出请求以检索相关字段的新选项

用法

  • 使用 DependentField 包装器
 DependentField::adapt(
    AssociationField::new('author'),
    [
        'callback_url' => $this->urlGenerator->generate('authors', [], UrlGeneratorInterface::ABSOLUTE_URL),
        'dependencies' => ['gender'],
        'fetch_on_init' => true
    ]
)

配置

依赖关系

dependencies 数组是与其他字段名称对应的字符串数组

使用此依赖关系配置,每当 gender 字段更新时,都会调用回调

'dependencies' => ['gender']
回调 URL

callback_url 必须是一个接受 GET 请求的 URL,并返回以下格式的数据

[
  {
    "text": "John Doe",
    "value": 1
  },
  {
    "text": "John Snow",
    "value": 2
  }
]

以下查询参数将与请求一起发送(这对应于依赖关系数组和相应的字段值)

{
  "gender": "Male"
}
初始化时获取

fetch_on_init 参数定义回调是否在字段挂载后立即执行