2016-04-12 2 views
0

Я думаю, что я немного смущен, должен понимать, как Symfony 2 справляется с этим, и теперь я сортирую, как сохранить коллекцию.Как сохранить мою коллекцию Symfony 2?

Я использование Symfony 2.7.10

У меня есть форма, которую я скопировал, поэтому два типа формы, вторая установка имеет коллекцию, которую я могу добавить к форме с JQuery.

Моей форма Кода: - Это форма оказывает

public function buildForm(FormBuilderInterface $builder, array $options) { 
     $builder 
     ->add('input1', 'text', ['label' => 'xxxx:']) 
     ->add('input2', 'text', ['label' => 'xxxx:']) 
     ->add('inputcol', 'collection', [ 
             'type' => new AddInputsType(), 
             'allow_add' => true, 
             'allow_delete' => true, 
             'prototype' => true, 
             'label' => false, 
             'mapped' => false 
             ]); 
} 

Это форма для inputcol коллекции

public function buildForm(FormBuilderInterface $builder, array $options) { 
    $builder 
     ->add('input1', 'test', ['label' => 'Other1:']) 
     ->add('input2', 'text', ['label' => 'Other2:']); 
} 

Это форма, оказываемая в моем шаблоне

{{ form_start(FormTest) }} 

    <span id="testMe" data-count="1" data-prototype="{{ form_widget(FormTest.inputcol.vars.prototype)|e }}"> 
     {% for emailField in FormTest.inputcol %} 
      {{ form_errors(emailField) }} 
      {{ form_widget(emailField) }} 
     {% endfor %} 
    </span> 

    <span class="ContentHere"></span> 

    <div class="form-group"> 
     <div id="addNew" class="btn">ADD</div> 
    </div> 

{{ form_end(FormTest) }} 

Этот код, я думаю, был закодирован из документов Symfony 2.

И это мой JQuery код

var testAJAX = function() { 
    $('#addNew').on('click', function() { 
    var GetDataCount = parseInt($('#testMe').attr('data-count')); 
    var emailList = $('#testMe'); 
    var newWidget = emailList.attr('data-prototype'); 

     newWidget = newWidget.replace(/__name__/g, GetDataCount); 

    var newCount = GetDataCount + 1; 
    $('#testMe').attr('data-count', newCount); 

    var newLi = $('.ContentHere').append(newWidget); 
    }); 
}; 

testAJAX(); 

Опять же, это я думаю, также приходят из документации, но я редактировал считать цикл с data-count тега. Я сделал это в основном потому, что этот код запускается с помощью задачи Grunt, которая не понравится шаблону Twig.

Все это, кажется, работает без проблем, однако я знаю немного, что путают, как получить эти данные для сохранения с моими сущностями.

Это как мой контроллер код выглядит,

public function AdminHomeAction(Request $MyRequest) { 

    $GetEn = new EntityHere(); 
    $ActionURL = $this->generateUrl('dashboard'); 
    $Form = $this->createForm(new AddTestType(), $GetEn, ['action' => $ActionURL]) 
         ->add('save', 'submit', ['label' => 'SAVE', 
                'attr' => ['class' => 'SaveButton'], 
               ]); 

    $Form->handleRequest($MyRequest); 

    if ($Form->isValid()) { 
      $test = $MyRequest->get('xxxxx')['xxxxx']; 

      dump( $test); 

      dump($_POST); 

      die(); 
    } 

    return $this->render('Bundle:home.html.twig', ['FormTest' => $Form->createView()]); 
} 

Теперь я знаю, что мой JQuery выглядит он работает отлично (или иначе я думаю, что это). Он может добавить, что у меня есть много входов, и я могу получить доступ к этим данным как с $_POST, так и с Symfony 2 Request.

Однако когда я пытаюсь получить доступ к объекту, он всегда пуст? Как привязать данные из моих данных до объекта? или я сделал что-то не так?

Вся помощь приветствуется

Спасибо.

ответ

1

Однако, когда я пытаюсь получить доступ к объекту, он всегда пуст? Как мне привязать данные из моих данных до объекта? или я сделал что-то не так?

Когда «отображается» => ложно, то значение из запроса не ограничена с объектом

+0

ок, но если я сними это, как это работает? Мне нравится, когда я должен настроить getter и setter для сбора, чтобы он правильно отображался? Благодаря! –

+0

Добавить свойство для сущности и доктрины use: generate: entities для генерации методов. –

+0

Спасибо, приятель, я даю это, когда я могу! Большое спасибо –

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