Php Symfony 2表单,嵌入集合中的嵌入集合
我有一个数据结构,其中一个主题有许多问题(一对多),一个问题有许多答案(一对多) 我已经将问题设置为主题表单中的嵌入式集合,并且由于主题表单,我的所有问题都能100%正常工作 当我尝试开发这个工具,在问题表单中嵌入一组答案表单时,我遇到了一个问题 包含顶层原型表单的数据原型属性具有表单的全部深度,因此包括问题和答案的原型。但它为每个级别使用相同的占位符Php Symfony 2表单,嵌入集合中的嵌入集合,php,symfony,Php,Symfony,我有一个数据结构,其中一个主题有许多问题(一对多),一个问题有许多答案(一对多) 我已经将问题设置为主题表单中的嵌入式集合,并且由于主题表单,我的所有问题都能100%正常工作 当我尝试开发这个工具,在问题表单中嵌入一组答案表单时,我遇到了一个问题 包含顶层原型表单的数据原型属性具有表单的全部深度,因此包括问题和答案的原型。但它为每个级别使用相同的占位符\uuuuuu name\uuuuuu <div id="topic_questions___name__"> <div cla
\uuuuuu name\uuuuuu
<div id="topic_questions___name__">
<div class="control-group">
<label for="topic_questions___name___questionText" class="control-label">question</label>
<div class="form-row-errors"></div>
<div class="controls">
<textarea id="topic_questions___name___questionText" name="topic[questions][__name__][questionText]" required="required" class="input-block-level"></textarea>
</div>
</div>
<div class="control-group">
<label class="control-label">answers</label>
<div class="controls">
<div id="topic_questions___name___answers" data-prototype="<div class="control-group"><label class="control-label">__name__label__</label><div class="controls"><div id="topic_questions___name___answers___name__"><div class="control-group"><label for="topic_questions___name___answers___name___answerText" class="control-label">option</label><div class="form-row-errors"></div><div class="controls"><input type="text" id="topic_questions___name___answers___name___answerText" name="topic[questions][__name__][answers][__name__][answerText]" required="required" maxlength="255" /></div></div><input type="hidden" id="topic_questions___name___answers___name___sortOrder" name="topic[questions][__name__][answers][__name__][sortOrder]" /></div></div></div>"></div>
</div>
</div>
当创建问题表单的真实实例时,当然会用相同的值替换\uuuuu name\uuuuuu
的所有实例,因此当为答案表单创建数据原型时,它已经替换了所有占位符
当我点击添加一个真正的问题表单时,答案表单的数据原型就是这样的
<div class="control-group">
<label class="control-label">1label__</label>
<div class="controls">
<div id="topic_questions_1_answers_1">
<div class="control-group">
<label for="topic_questions_1_answers_1_answerText" class="control-label">option</label>
<div class="form-row-errors"></div>
<div class="controls">
<input type="text" id="topic_questions_1_answers_1_answerText" name="topic[questions][1][answers][1][answerText]" required="required" maxlength="255" />
</div>
</div>
</div>
</div>
1标签__
选项
如您所见,\uuu name\uuu
占位符根本不起作用-在创建问题表单时,它已经被问题表单的计数所取代
使用Symfony提供的机制是否可以实现这种多深度嵌入式采集
只要它尝试为每个“级别”使用相同的占位符,我就看不出是如何使用的。您是否至少使用了Symfony 2.1?如果是这样,您可以使用属性
prototype\u name
更改\u name\u
标签:
以您的形式:
->add('answers', 'collection', array(
'type' => new AnswerType(),
'allow_add' => true,
'prototype_name' => 'another_name'
))
->add('answers', 'collection', array(
'type' => new AnswerType(),
'allow_add' => true,
'prototype_name' => 'another_name'
))