Symfony在一个页面上有多种形式

时间:2017-10-02 12:21:11

标签: forms symfony

我正在学习 symfony 并完成我的第一个测试项目。我有一个包含即将举办的活动列表的页面

(Entity - event (id, city, date, info))

并希望为每个事件添加一个表单,以便将新客户端保存到事件中。我怎样才能做到这一点?我在Event实体中添加了一个客户端实体和多对多关系,下一步应该是什么?怎么看我的表格课?

1 个答案:

答案 0 :(得分:1)

根据您的模板,默认情况下,Event和Client之间关系的FormType将为:

  • EntityType multiple选项true以获得复选框或带多项选择的选择框
  • CollectionType里面有一个EntityType。这将由客户创建一个单独的字段

这些解决方案将检索每个字段的所有客户端,并可能导致性能问题。因此,最佳解决方案是使用自动填充字段创建custom form type。您可以从带有自动完成javascript插件和简单参数(如id和客户端名称)的ChoiceType开始,然后使用data transformer完成,以便检索客户端而不是名称。

如果您即将举办的活动列表很小,您可以为每个活动创建此表单。否则你将不得不这样做:

  1. 只创建一个包含事件集合的表单,显示信息的只读字段和添加客户端的字段。我认为这是最简单的解决方案。
  2. 为每个事件动态添加表单:您可以使用render controller功能执行此操作,但如果您有很多事件,这也会导致性能问题。所以最好的解决方案是使用AJAX调用添加这些表单或更改模板:)。