2016-03-25 1 views
2

にネストされたフォームはsymfony(子の子)でボタンをAccesingクリックしてコメントのエントリを削除します。すべてが適切にマップされている、私は私のページに表示されたコメントオブジェクトを見ることができますが、私が$form->get('remove')を使用すると私は"Child "remove" does not exist."を得るこのようにすることも可能ですか?別にあなたがあなたのビューで「完了」子フォームを構築することを確認する必要がありますは、これは私が使用する形式であるsymfonyの

foreach ($form->get('comments') as $entry) { 
    $toRemove = $entry->get('remove')-isClicked(); 
    // handle it ... 
} 

しかし、それを提出する:

+0

'if($ form-> has( 'delete')&& $ form-> get( 'delete') - > isClicked())'?しかし、CollectionFormTypeで可能かどうかは分かりません。 – mblaettermann

+0

'if($ form-> get( 'edit') - > isClicked())'は 'edit'というボタンでうまく動作します。 CommentType – zeljkoMON

+0

から 'remove 'というボタンを使いたいです。私はこれが可能なのかどうかわからない。たぶん私は@webmozartに尋ねますか? 編集:ちょうどTwitterで彼に尋ねた。 – mblaettermann

答えて

0

あなたは壮大な壮大な子がやってアクセスする必要があるほかに

{{ form_start(form) }} 
{% for child in form %} 
    {% if 'news_comments' == child.vars['full_name'] %} 
     {{ form_start(child) }} 
     {{ form_row(child) }} 
     {{ form_end(child) }} 
    {% else %} 
     {{ form_row(child) }} 
    {% endif %} 
{% endfor %} 
{{ form_end(form) %} 

注:

symfony 2.8を使用してフォームタイプのFQCNを更新したようですが、フォームの作成には必要です。

$form = $this->createForm(NewsType::class, $news) 
+0

これはテンプレートからのコードです '{%for form.comments%} {{form_row(comment.author)}} {{form_row(comment.text)}} {{form_row(comment.remove) }} 'Uncaught PHP Exception Symfony \ Component \ Form \ Exception \ OutOfBoundsException {0 endfor%}' $ form-> get( 'comments') - > get( 'remove'); : "子" remove "does not exist。" 'エラー – zeljkoMON

+0

' {{form_row(form.comments)}} ' – Heah

+0

を実行するとコメントの前に数字が表示されますが、それは重要ではありません。コメントは表示されますが、テンプレートを表示する方法に関係なくエラーが表示されるため、ボタンがクリックされたかどうかを確認することはできません。 – zeljkoMON

関連する問題