我想为我的内联集合创建自定义模板,因为内联不合适。我正在努力弄清楚如何获取自定义模板进行渲染。
我尝试添加模板,然后将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'
]);
}
请注意,我希望此模板仅适用于此特定集合,而我不使用其他任何集合。
答案 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