访问对象以获取嵌入式表单

时间:2018-08-13 19:03:26

标签: forms symfony twig

我想访问与嵌入式表单关联的对象,而不仅仅是访问我在表单中内置的字段。

我的用途是网上论坛的成员列表。组是 Group 实体,用户是 User 实体,组成员是 GroupMember 实体。 GroupMember 对象具有一个 permissions 字段,用于描述用户对该组的访问权限。

我想要一个列出用户并具有下拉菜单以选择权限的表单。像我的TWIG文件中一样:

{% for groupMember in form.members %}
    <div class="row">
       <div class="col-sm-6">
           {{ groupMember.user.printPrettyName }}
       </div>
       <div class="col-sm-3">
           {{ form_widget(groupMember.permission) }}
       </div>
    </div>
{% endfor %}

显然,此操作中的第四行不起作用,因为 groupMember FormView 对象而不是 GroupMember 对象。当我{{ dump(groupMember) }}时,我看到的是 vars 数组,其中的 value 条目包含了被引用的对象(即 GroupMember 对象)。而当我{{ dump(groupMember.vars.value }}时,它将转储具有其属性 user group permission 等的对象。但是当我尝试{{ 1}}出现错误无法访问null变量上的属性(“用户”)。我无法使用{{ dump(groupMember.vars.value.user.lastName) }}访问,因为 user 不是表单中的字段。

我可以通过将 user 作为 EntityType 字段(其 class 设置为)添加到表单中,从而获得非常接近我想要的东西的东西。 用户,将_choice_label_设置为 printPrettyName ,将禁用的设置为 true ,然后将上面的第四行更改为{{ dump(groupMember.user.vars) }},除非我不这样做。希望变灰/禁用下拉。

请注意,这是美学的事情。放入禁用的下拉字段会正确更新所有数据库记录。

0 个答案:

没有答案