根据Bundle更改表单呈现器模板


Change form renderer template depending on Bundle

Symfony附带了form_div_layout.html.twig文件中的表单模板。我想根据捆绑包更改该模板。

  • 捆绑包A内的视图-->使用form_div_layout.html.twig显示表单
  • 捆绑包B内的视图-->使用form_div_whatever_layout.html.twig显示表单

这可能吗?

一般情况下不会。但是,如果每页只有一个表单,有一种方法可以做到:

template_a.html.trick

{% if form|defined %}
    {% form_theme form "form_div_layout.html.twig" %}
{% endif}
{# rest of the tempalte goes here %}

BundleA中的每一页

{% extends "....template_a.html.twig %}
{# extend the blocks defined in template_a.html.twig

主要缺点是,如果您有表单,则必须将其传递给变量名为form的模板,否则它将无法工作。。。

也许其他人可以在这个问题上多一些亮点。。。