简易管理员:如何在表单视图中自定义字段模板?

时间:2018-12-26 14:40:08

标签: php symfony symfony4 symfony2-easyadmin easyadmin

我需要在EasyAdmin捆绑包中自定义表单视图字段(编辑表单字段)。在列表视图中的操作如下:  - { property: 'images', template: 'custom_template.html.twig'}

如何在表单视图(编辑模式)中实现相同的功能?自定义模板不适用于表单视图(编辑视图)。所以我做了一个自定义字段类型

- { property: 'images', type: 'App\Form\Type\MyImagesType'}

但是不知道如何实现自定义模板。

class MyImagesType extends CollectionType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $form->add($key, FileType::class, ['multiple'=>true, 'required'=>false]);
 }
}

我想通过插入以下脚本将dopzone.js集成到我的表单中:

<script src="./public/dropzone.js"></script>
<form action="{{ oneup_uploader_endpoint('gallery') }}" class="dropzone" style="width:200px; height:200px; border:4px dashed black">
</form>

2 个答案:

答案 0 :(得分:1)

EasyAdmin依赖Symfony的Form组件来进行与编辑/新视图相关的任何操作。这意味着在列表/显示/搜索中用于自定义每个属性的呈现的简单机制不可用。

https://symfony.com/doc/master/bundles/EasyAdminBundle/book/edit-new-configuration.html#advanced-design-configuration中所述,替代方法是覆盖默认模板或创建自己的表单主题。

希望该提案获得批准并合并后,Symfony会尽快简化这一过程:https://github.com/symfony/symfony/issues/29651

答案 1 :(得分:0)

像这样:

# config/packages/easy_admin.yaml
easy_admin:
    entities:
        Customer:
            class: App\Entity\Customer
            form:  # <-- 'form' is applied to both 'new' and 'edit' views
                fields:
                    - 'id'
                    - { property: 'email', type: 'email', label: 'Contact' }
                    # ...
    # ...

检查文档,非常简单 https://symfony.com/doc/master/bundles/EasyAdminBundle/book/edit-new-configuration.html#the-special-form-view