如何在Symfony中处理每个字段有多个可能操作的“复杂”表单?

时间:2017-10-13 12:04:56

标签: php forms symfony

我正在开发一个基于Symfony 2.8的网络应用项目。为了简单起见,我们假设网络应用程序是一个简单的地址簿,可以管理任意数量的Contacts。每个Contacts都分配给Category,例如“商业”,“家庭”,“朋友”,“学校”等。

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

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

  1. 从导入
  2. 中删除所有使用此类别的条目
  3. 重新分配应该使用的现有类别,例如“私人”==> “家庭”
  4. 将缺少的类别添加到网络应用程序。除了名称之外,还需要选择其他详细信息,如图标和颜色。
  5. 如何做到这一点?

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

    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”)或复杂数据(名称,图标,颜色)... < / p>

    可以使用Symfony完成此操作还是必须从用户选择中构建自己的数据结构(例如某些JSON)并将其发布回WebApp?

0 个答案:

没有答案