Symfony 2:如何在表单中正确添加集合中的元素

时间:2014-09-11 16:45:50

标签: forms symfony collections prototype

以entityA的形式,我希望能够添加某种形式的entityB。

我知道如何显示一个表单,但是当我将属性'collection'与'allow_add'放在一起时...它不会添加任何东西,只有空

  • < / p>

    这是我的观点:

    <.form action="{{ path('our_bundle_building_entityACreate')}}" method="post" {{ form_enctype(form) }} >
    {{ form_widget(form) }}
    
    {{ form_row(form.entity) }}
    
    <ul id="price-fields-list" data-prototype="{{ form_widget(form.entityB.vars.prototype) | e }}">
        {% for entityB in form.entityB %}
            <li>
                {{ form_errors(entityB) }}
                {{ form_widget(entityB) }}
            </li>
        {% endfor %}
    </ul>
    <a href="#" id="add-another-entityB">Add another entityB price</a>
    
    <input type="submit" />
    <./form>
    
    <.script type="text/javascript">
    var entityBCount = '{{ form.entityB | length }}';
    
    jQuery(document).ready(function() {
        jQuery('#add-another-entityB').click(function() {
            var entityBList = jQuery('#entityB-fields-list');
    
            var newWidget = entityBList.attr('data-prototype');
    
            newWidget = newWidget.replace(/__name__/g, entityBCount);
            entityBCount++;
    
            var newLi = jQuery('<li></li>').html(newWidget);
            newLi.appendTo(jQuery('#entityB-fields-list'));
    
            return false;
        });
    })
    <./script>`
    

    我的形式的entityB很好用,所以我不会显示它(只有几个常用的输入)

    我在buildForm中的entityA形式:

    ->add('entityB', 
                    'collection', 
                    array('type' => new entityBType($this->id),
                          'allow_add' => true,
                          'allow_delete'  => true,
                          'by_reference' => false,));
    

    顺便说一句,我并没有真正理解“原型”所以问题可能来自这里。

    谢谢和问候,

    我:)

    1 个答案:

    答案 0 :(得分:0)

    如果你想只嵌入那个表格,最简单的方法就是这样做:

    ...    
    
    ->add('entityB', new entityBType($this->id));