【发布时间】:2016-03-25 02:15:41
【问题描述】:
我有一个用于编辑用户实体的 UserType 表单。每个用户都有一个权限集合,这些权限通过一个 CollectionType 来管理
[ 'entry_type'=>'PermissionType', 'allow_add'=>true, 'prototype'=>true ]
当从 Doctrine 加载 User 对象时,权限是正确的,并且在渲染视图时会正确显示。当我这样单独呈现权限时:
{%for R in form.permissions%}
{{form_widget(R)}}{{form_label(R)}}{{form_errors(R)}}
{%endfor%}
我的包含元素的数据属性标签是这样渲染的:
data-prototype="{{form_widget(form.permissions.vars.prototype)|e}}"
但是原型只包含一个空的 div(但正确命名为 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属性也包含一个标签:
data-prototype="<div><label class="required">__name__label__</label><div id="user_permissions___name__"></div></div>"
为我的测试用例生成的三个 PermissionType 否则会生成完美的输出。
所以我的问题是:我的原型无法正确渲染的原因是什么?也许我发现了一个错误?我也试过一次渲染完整表单的情况,和第二种情况一样。
【问题讨论】:
标签: symfony-forms symfony