集合类型内联模板

时间:2018-11-22 14:55:29

标签: symfony sonata-admin symfony4 sonata symfony-sonata

我想为我的内联集合创建自定义模板,因为内联不合适。我正在努力弄清楚如何获取自定义模板进行渲染。

我尝试添加模板,然后将template用作不起作用的字段的属性。

->add('pictures', CollectionType::class, [
    'by_reference' => false,
    'label' => false,
], [
    'edit' => 'inline',
    'inline' => 'table',
    'template' => 'admin/picture/test.html.twig'
])

我的模板中用于自定义管理员编辑的模板等网站。

我还向集合使用的管理员添加了方法getFormTheme(),并添加了转储和终止,以查看是否被调用并且不会转储和终止。

// PicutreAdmin.php

public function getFormTheme()
{
    return array_merge(parent::getFormTheme(), [
        'admin/picture/test.html.twig'
    ]);
}

请注意,我希望此模板仅适用于此特定集合,而我不使用其他任何集合。

1 个答案:

答案 0 :(得分:0)

您可以覆盖此处显示的管理模板,https://sonata-project.org/bundles/admin/master/doc/reference/templates.html对其进行扩展,并使用有关如何自定义单个字段的此处https://symfony.com/doc/4.0/form/form_customization.html描述的策略

但是请注意,Sonata为所有表单元素名称添加了自定义前缀,因此您必须弄清楚该集合的命名方式,可以通过调试表单块来做到这一点,而本文可能会帮助您https://blog.bouzekri.net/2015-02-06-symfony-tips-find-form-theme-override-block-name.html