insitaction / easyadmin-fields-bundle
为 Insitaction 提供的一套 easyadmin 字段和有用的助手
5.1.0
2024-02-02 23:52 UTC
Requires
- php: >=8.0
- easycorp/easyadmin-bundle: ^4
- symfony/framework-bundle: ^v6.1|^7.0
- symfony/webpack-encore-bundle: ^1.15|^2
Requires (Dev)
- roave/security-advisories: dev-latest
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'],
]
当输入值为 A 或 B 时,将显示 field1 字段,当输入值为 B 或 C 时,将显示 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 参数定义回调是否在字段挂载后立即执行