我有两个实体,个案和标签,具有多对多关系。
- 案例实体 - @ORM\ManyToMany(targetEntity="Tag", inversedBy="case", cascade={"persist"})
private $tags;
@ORM\ManyToMany(targetEntity="Case", mappedBy="tags")
private $case;
当我通过复选框添加标签时,这工作正常。但是我希望通过表单集合添加新标签(其中很多)。
我正在关注symfony cookbook(http://symfony.com/doc/current/cookbook/form/form_collections.html)。
- CaseType.php - $builder
->add('title')
//...
->add('tags', 'collection', array(
'type' => new TagType(),
'allow_add' => true,
'by_reference' => false,
'allow_delete' => true,
));
{{ form_start(form) }}
<ul class="tags" data-prototype="{{ form_widget(form.tags.vars.prototype.name)|e }}">
{% for tag in form.tags %}
<li>{{ form_row(tag.name) }}</li>
{% endfor %}
</ul>{{ form_end(form) }}
以下是来自new.html.twig的JavaScript代码,正在运行:http://jsfiddle.net/7d8vLokn/1/
问题在于渲染new.html.twig时,它在页面底部只显示Tag标签,没有其他内容。
我注意到new.html.twig中有两个数据原型,一个是我创建的(如上所述),另一个是自动创建的,位于页面底部...空:
<div class="form-group">
<label class="control-label required">Tags</label>
<div id="my_bundle_bug_tags" data-prototype=""></div>
</div>