2016-03-25 3 views
0

私はUserエンティティの編集に使用されるUserTypeフォームを持っています。各ユーザーは、ユーザーオブジェクトが教義からロードされるとsymfony collectiontypeデータプロトタイプの出力が不完全で、空のdivのみがレンダリングされます

[ 'entry_type'=>'PermissionType', 'allow_add'=>true, 'prototype'=>true ] 

でCollectionTypeはを通じて管理される許可ののコレクションを持って、パーミッションが正しく、ビューがレンダリングされるとき、それらが正しく表示されます。私は別々ように権限をレンダリングする場合:

data-prototype="{{form_widget(form.permissions.vars.prototype)|e}}" 

しかし、その後のプロトタイプは、空のdivが含まれています(ただし、正しい名前:

   {%for R in form.permissions%} 
       {{form_widget(R)}}{{form_label(R)}}{{form_errors(R)}} 
       {%endfor%} 

私含む要素のdata属性タグはようにレンダリングされますid)。

data-prototype="<div id="user_permissions___name__"></div>" 

ドキュメントの状態は、この:

If you render your whole "tags" sub-form at once (e.g. 
form_row(form.tags)), then the prototype is automatically available on 
the outer div as the data-prototype attribute, similar to what you see 
above. 

だから私は、あまりにもこのアプローチを試みたが、その後、生成されたdiv要素のデータ・プロトタイプの属性は、同様にラベルが含まれています

data-prototype="<div><label class="required">__name__label__</label><div id="user_permissions___name__"></div></div>" 

私のテストケース用に生成された3つのPermissionTypesは、そうでなければ完全な出力を生成します。

私の質問は、私のプロトタイプが正しくレンダリングされない原因は何ですか?私はおそらくバグを発見したのだろうか?私はまた、2番目のケースと同じように、一度に完全なフォームをレンダリングするケースを試みました。

答えて

0

私はそれを見つけた、私は間違いをした。 PRE_SET_DATA FormEventのフォームに特定の入力要素を追加しました。これは、データの一部を反映するようにラベルを変更したいからです。しかし、symfonyがデータプロトタイプを生成するとき、buildFormを呼び出しますが、データは設定されません。その結果、空のdivは実際にはかなり正確でした。 buildFormでフォームを直接ビルドすると、それが解決されました。

関連する問題