如何在symfony 3中创建自定义类型的数组形式字段?

时间:2018-09-30 11:45:17

标签: forms symfony

我有一个自定义表单类型Option Explicit Public Sub GetInfo() Dim IE As New InternetExplorer, u As Long With IE .Visible = True For u = 2 To 100 If InStr(Cells(u, 1).Value, "http") > 0 Then .navigate Cells(u, 1).Value While .Busy Or .readyState < 4: DoEvents: Wend On Error Resume Next With .document.getElementById("bm_ann_detail_iframe").contentDocument ThisWorkbook.Worksheets("Sheet1").Cells(u, 3) = .getElementsByClassName("formContentDataH")(3).innerText ThisWorkbook.Worksheets("Sheet1").Cells(u, 4) = .getElementsByClassName("company_name")(0).innerText ThisWorkbook.Worksheets("Sheet1").Cells(u, 5) = .getElementsByClassName("formContentDataH")(1).innerText ThisWorkbook.Worksheets("Sheet1").Cells(u, 6) = .getElementsByClassName("formContentData")(3).innerText ThisWorkbook.Worksheets("Sheet1").Cells(u, 7) = .getElementsByClassName("formContentData")(4).innerText ThisWorkbook.Worksheets("Sheet1").Cells(u, 8) = .getElementsByClassName("formContentData")(5).innerText ThisWorkbook.Worksheets("Sheet1").Cells(u, 9) = .getElementsByClassName("formContentData")(9).innerText End With On Error GoTo 0 End If Next u End With End Sub 我想在表单中使用此类型作为数组 我尝试过

AddressType

但是我无法在此表单对象中添加任何字段, 而当我尝试

$builder->add('addresses', CollectionType::class, [
'entry_type' => AddressType::class,]);

我只能以表格形式提供一个Address对象,所以 我如何能够像这样

发布一个AddressType对象的数组
$builder->add('addresses', AddressType::class, []); 

1 个答案:

答案 0 :(得分:0)

第一种使用 CollectionType 的方法是正确的方法-基本上是根据documentation AddressType 字段数组。

正确配置实体和表单类型后,您可以将一个或多个 AddressType 字段手动添加到表单的集合字段中(例如在控制器中),然后在用 for 循环

symfony documentation中也可以找到这种方法以及更困难和更高级的方法。我建议您按照此处显示的示例进行操作,看起来很像您的问题案例。