【发布时间】:2019-07-22 12:02:14
【问题描述】:
我正在尝试设置嵌入表单类型(集合类型)的标签。 对于不同的集合,这些标签必须不同。
例如,我有两个集合和一个带有标签 ['label1','label2'] 形式类型的数组。
我想我需要集合迭代的索引来获得正确的标签。
如下所示,我需要 entry_options 标签的索引来获取 $labels 数组的正确值。
这就是我的 buildForm 方法
public function buildForm(FormBuilderInterface $builder, array $options)
{
$labels = ['label1', 'label2'];
$builder
->add('otherForms', CollectionType::class, [
'entry_type' => otherFormType::class,
'entry_options' => ['label' => $labels[$index]],
])
...
;
}
【问题讨论】:
-
您说您有两个集合,但是您的代码表明,您有一个混合集合(可能 label1 一个条目,label2 一个条目?)为什么要使用 CollectionType 而不是只需添加两个表单?
-
我为这个例子选择了两个集合。 Normaly 我有不同语言的灵活数量的集合。一般来说,我有 10 多个收藏。如果可以灵活地构建表单,那就太好了,这样我以后可以添加语言而不必更新表单类型。
-
我有一个挥之不去的疑问,您实际上只有 一个 集合,其中每个子表单都应获得不同的标签。准确吗?
-
例如,我有一个 ID 为“GB”且名称为“Great British”的实体。现在我将网站更新为多语言。现在我有一个 ID 为“GB”的实体,名称在另一个具有新 ID 的实体中,引用第一个实体,国家缩写“en”和翻译“Great British”。所以我对每种语言都有一个实体。你明白吗?
-
我不想使用翻译包。
标签: symfony query-builder