Twitter bootstrap Symfony 2 Twig表单小部件中的自定义引导3变量

Twitter bootstrap Symfony 2 Twig表单小部件中的自定义引导3变量,twitter-bootstrap,symfony,twig,Twitter Bootstrap,Symfony,Twig,在symfony2中,我试图创建一个细枝表单模板来显示类似引导的表单小部件。多亏了这一点,我领先了一步。像下面这样的简单小部件可以工作 … {% block form_widget_simple %} {% spaceless %} {% set type = type|default('text') %} <input class="form-control" type="{{ type }}" {{ block('widget_attributes') }} {% if

在symfony2中,我试图创建一个细枝表单模板来显示类似引导的表单小部件。多亏了这一点,我领先了一步。像下面这样的简单小部件可以工作

…
{% block form_widget_simple %}
{% spaceless %}
    {% set type = type|default('text') %}
    <input class="form-control" type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endspaceless %}
{% endblock form_widget_simple %}
…
现在,我想利用这些简单的小部件来满足您的需求

我知道有很多软件包可以将Bootstrap3集成到Symfony2中,比如MopaBootstrapBundle和BraincraftedBoosStrapbundle。为了使我的代码尽可能精简,我希望只修改小部件就可以得到同样的结果

这个想法是在调用小部件时加入一个额外的变量,就像这样

{{ form_row(aanmeld_form.username, {'input_group': { 'prepend': '@' }, 'attr': {'placeholder': 'Gebruikersnaam'}, 'label': 'Gebruikersnaam', 'label_attr': {'class': 'sr-only'}}) }}
然而,当我尝试使用这个
'input\u group'
变量时,Symfony不知道这个变量

{% block form_widget_simple %}
{{ input_group }}
{% spaceless %}
    {% set type = type|default('text') %}
    <input class="form-control" type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
    {% endspaceless %}
{% endblock form_widget_simple %}
{%block form\u widget\u simple%}
{{input_group}}
{%spaceless%}
{%set type=type | default('text')%}
{%endspaceless%}
{%endblock form_widget_simple%}
此代码导致此错误<代码>变量“输入组”不存在。


甚至可以在调用Twig表单小部件时存储额外的变量吗?我忘了什么吗?

您不能只向未为该元素定义的元素添加选项。您可以考虑创建自己的自定义表单字段。示例显示如何创建包含子表单字段的下拉列表。您可能需要类似的东西,但要更改它,以便将子元素包装在输入组div中。有关其他信息,您可以检查并从中提取所需的代码

{% block form_widget_simple %}
{{ input_group }}
{% spaceless %}
    {% set type = type|default('text') %}
    <input class="form-control" type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
    {% endspaceless %}
{% endblock form_widget_simple %}