【发布时间】:2019-05-23 21:09:55
【问题描述】:
当 'allow_add' 选项设置为 true 时,CollectionType 字段具有特殊的 'prototype' 变量。该变量可用于渲染原型 html,如下所示:
data-prototype="{{ form_widget(form.collectionfieldname.vars.prototype)|e('html_attr') }}"
看起来“原型”只是使用部分数据构建的集合子 FormView 的一个实例(例如,名称设置为“__name__”,而大多数其他变量留空)。
所有这些魔法发生在哪里?是否可以在构建表单时修改传递给原型视图的数据?例如,我想将“value”变量的默认值从空白更改为“__val__”(在 Twig 模板之外)。
【问题讨论】:
-
你尝试过 buildView 吗?
-
看起来我想通了(请参阅下面我自己的答案)。视图是在 CollectionType 类的 buildView 方法中创建的,而原型表单是在同一个类的 buildForm 方法中构建的。
标签: symfony symfony-forms symfony4