Я думаю, что я немного смущен, должен понимать, как 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
.
Однако когда я пытаюсь получить доступ к объекту, он всегда пуст? Как привязать данные из моих данных до объекта? или я сделал что-то не так?
Вся помощь приветствуется
Спасибо.
ок, но если я сними это, как это работает? Мне нравится, когда я должен настроить getter и setter для сбора, чтобы он правильно отображался? Благодаря! –
Добавить свойство для сущности и доктрины use: generate: entities для генерации методов. –
Спасибо, приятель, я даю это, когда я могу! Большое спасибо –