Symfony2表单 - 嵌入式表单嵌入bootstrap表单组

时间:2015-06-24 06:43:30

标签: forms symfony twitter-bootstrap-3

我正在使用BraincraftedBootstrapBundle并使用嵌入表单遇到一个小问题。

假设我使用构建器构建表单如下:

$builder->add('title', 'text', ...)
    ->add('name', 'text', ...)
    ->add('address', new AddressType(), array('label' => false);

创建表单时,所有字段都按照引导程序放置在表单组中,但整个地址表单也放在表单组中,例如:

<div class="form-group">
    <div class="col-lg-3"><label>Title</label></div>
    <div class="col-lg-9"><input ....></div>
</div>
<div class="form-group">
   <div class="col-lg-3"><label>Name</label></div>
    <div class="col-lg-9"><input ....></div>
</div>

-- but then the entire embedded address form is placed in a form-group ---

<div class="form-group">
    <div class="col-lg-9">
        <div class="form-group">
           <div class="col-lg-3"><label>Address</label></div>
           <div class="col-lg-9"><input ....></div>
        </div> 
        <div class="form-group">
           <div class="col-lg-3"><label>City</label></div>
           <div class="col-lg-9"><input ....></div>
        </div> 
        <div class="form-group">
           <div class="col-lg-3"><label>State</label></div>
           <div class="col-lg-9"><input ....></div>
        </div>   
    </div>
</div> 

如何阻止嵌入表单嵌入表单组?

修改 如果无法更改,如何更改包装地址表单的外部div的列大小?例如从col-lg-9到col-lg-12?我尝试添加'attr'=&gt;数组('widget-col'=&gt; 12)到地址但是为地址表格中的所有元素设置

1 个答案:

答案 0 :(得分:0)

回答我自己的问题但经过大量研究后,我终于找到了答案,感谢这个链接的帮助:

http://blog.bouzekri.net/2015/02/06/symfony-tips-find-form-theme-override-block-name/

由此我能够看到twig创建了哪些块,因此可以覆盖form_row块:

 {% block _xxxxxxx_publicbundle_address_block_row %}
        <div class="address_group">
                {{ block('form_input_group') }}
                {{ form_errors(form) }}            
        </div>
 {% endblock %}

所以你有它,非常简单。我发布这个作为答案,以便其他人可以节省一点时间....