8

Symfony2でフォームビルダーを使用するのに問題があります。正確には、html配列の入力フィールドが必要ですが、createFormBuilder->addで作成できません。これが私が試したことです:

$attributesForm = $this->createFormBuilder()
        ->add('attribute[0]', 'text') ...

などですが、次の例外が発生します。

「attribute[0]」という名前に不正な文字が含まれています。名前は文字、>数字またはアンダースコアで始まり、文字、数字、数字、アンダースコア( "_")、ハイフン>( "-")、およびコロン( ":")のみを含める必要があります。

良い解決策はありますか、それとも手動でフィールドを作成する必要がありますか?

前もって感謝します!

編集:これをさらに明確にするために...私はこのようなものを生成したい:

<div id="msoft_adminbundle_offertype">
<div>Name <input type="text" name="name"></div>
<div>...</div>
<div>Attribute 0 <input type="text" name="attribute[0]"></div>
<div>Attribute 1 <input type="text" name="attribute[1]"></div>
<div>Attribute 3 <input type="text" name="attribute[3]"></div>
<ul>
    </ul>
<p>
    <button type="submit">Edit</button>
</p>

ヘルプ?

4

3 に答える 3

16

前の回答が述べているように、コレクションタイプまたはネストされたフォームを使用します。各フィールドは配列の1つのエントリに対応します。そして、それができない/したくない場合は、次のようにすることができます。

->add('attribute_0', 'text', array(
    'property_path' => 'attribute[0]',
))
于 2012-11-07T22:58:56.277 に答える
7

'collection'-fieldタイプを使用して、入力フィールドの配列を作成できます。

使用方法に関するドキュメントはここにあります:

コレクションのドキュメント

それが十分に明確でない場合、またはまだ質問がある場合は、喜んでお手伝いします。

于 2012-11-06T21:02:08.903 に答える
2

また、TWIGでフィールドをovverideすることができます。例:

   {{ form_row(form[field_name],{ 'full_name':  'attribute[' ~ step ~ ']' })}} 

ステップはあなたのインデックスです。

于 2013-05-20T20:57:41.093 に答える