1

我有两个实体,casetags,具有多对多的关系。

- 案例实体 -

@ORM\ManyToMany(targetEntity="Tag", inversedBy="case", cascade={"persist"}) private $tags;

- 标签实体 -

@ORM\ManyToMany(targetEntity="Case", mappedBy="tags") private $case;

当我通过复选框添加标签时,这工作正常。但我想通过收集表格来添加新标签(其中很多)。

我正在关注 symfony 食谱(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, ));

- new.html.twig -

{{ 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>
4

0 回答 0