私は少し混乱していると思うが、これでSymfony 2がどのように扱われているのか、私は今コレクションを保存する方法をよく知っている。Symfony 2コレクションを保存するには?
私が使用してsymfonyの2.7.10
私がコピーしたフォーム、ので、2つのフォームタイプを持っている、第二の設定は、私はjQueryを使ってフォームに追加することができ、コレクションを持っています。
マイフォームコード: - これは私がこれはこれは、フォームが私のテンプレートでレンダリングされているinputcol
コレクション
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('input1', 'test', ['label' => 'Other1:'])
->add('input2', 'text', ['label' => 'Other2:']);
}
するためのフォームです
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
]);
}
レンダリング形式です
{{ 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
タグでループをカウントするように編集していると思います。私は主に、このコードは、Twigテンプレートコードが気に入らないGrunt Taskで実行されているためです。
これはすべて問題なく動作するようですが、このデータを自分のエンティティに保存する方法を混乱させる小さなgitを知っています。
これは私のコントローラコードがどのように見えるかで、
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
の両方でそのデータにアクセスできます。
エンティティにアクセスしようとすると、常に空になりますか?投稿データのデータをエンティティにバインドするにはどうすればよいですか?私は間違った何かをしたのですか?
すべて歓迎
ありがとうございます。
で囲まれたが、私はそれを取る場合、どのように仕事をしていない場合は?私はゲストになっています。コレクションにゲッターとセッターを設定しなければならないので、マップされています。ありがとう! –
プロパティをエンティティに追加し、doctrine:generate:entitiesコマンドを使用してメソッドを生成します。 –
ありがとう、私はできるときにそれを与える!多くのありがとう –