我正在开发基于 Symfony 2.8 的Web应用程序项目 . 为了简单起见,让我们假设网络应用程序是一个简单的地址簿,允许管理任意数量的 Contacts . 每个 Contacts 被分配给 Category ,例如 Category . "Business","Family","Friends","School"等

应该可以以 CSV 格式导入新的联系人 . 在第一步中,解析上传的CSV文件,并且应用程序检查所有使用的类别是否有效==在应用程序中存在 .

对于非现有类别,用户应该有三个选项:

  • 从导入中删除所有使用此类别的条目

  • 重新分配应该使用的现有类别,例如"Private" ==> "Family"

  • 将缺少的类别添加到Web应用程序 . 除名称旁边还需要选择其他详细信息,如图标和颜色

How can this be done?

我们假设,导入数据中存在无效类别“私有”,“公司”和“俱乐部” . 现在我想提供一个表单,用户可以在上面选择的每个类别中选择:

Private    Remove|Assign|Create
Company    Remove|Assign|Create
Club       Remove|Assign|Create

根据选择,其他表单字段将变得不可见:

Private    REMOVE|Assign|Create    Do not import these entries (text hint)
Company    Remove|ASSIGN|Create    ==> Business (selected from DropDown box)
Club       Remove|Assign|CREATE    Textfield: Name, Dropdown: Icon, Dropdown: Color

当然,构建此列表没有问题,因此使用某些 JavaScript 在选项之间切换 .

BUT: 将结果传回 Symfony 的正确方法是什么?可以通过使用(自定义) FormTypes 来完成吗?

问题是,为每个类别返回/发布的数据没有唯一的结构,但取决于所选的操作 .

我如何处理一个类别 BOOL 值返回(delete = yes)而其他类别接收字符串(分配"Business")或复杂数据(名称,图标,颜色)...

这可以用 Symfony 来完成,还是我必须从用户选择中构建我自己的数据结构(例如一些JSON)并将其发布回WebApp?