2014-09-11 6 views
0

В форме entityA Я хотел бы иметь возможность добавить некоторую форму entityB.Symfony 2: Как правильно добавить элемент в коллекции в форме

Я знаю, как показать одну форму, но когда я ставлю атрибут «коллекции» с «allow_add» ... это не добавляет ничего, но пустой

  • здесь мое мнение:

    <.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 приятно работать, так что я не буду показывать это (только несколько обычных входов)

    моя форма entityA в buildForm:

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

    Кстати, я действительно не понял «прототип», поэтому проблема может возникнуть здесь.

    Спасибо и уважением,

    Me :)

    ответ

    0

    Если вы просто хотите вставить, что одна форма, самый простой способ сделать это:

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

    мне нужна коллекция формы, как я уже сказал, я уже знал это, и это работает, но коллекция не – iBlue

    +0

    Вы действительно строите коллекцию форм entityB? Потому что это не ясно из вашего примера выше. Если это всего лишь одна форма, которую вы хотите внедрить, тогда функционально «сбор» не требуется. Коллекция одной дочерней формы не является коллекцией. :/В этом случае просто создайте для формы entityB дочернее свойство типа формы родительского объекта. В противном случае загляните в свой файл (ы) журнала в 'app/logs' и посмотрите, не просит ли Symfony о вашей конфигурации коллекции. Фрагмент выше недостаточно для определения того, что не так. –

    +0

    На самом деле entityA имеет отношение один ко многим с entityB, поэтому я думаю, что мне нужна коллекция. Я проверю приложение/журналы – iBlue

    Смежные вопросы