Symfony2 如何为许多相同的实体创建一个表单?

Symfony2 How to create one form for many the same entities?

我有以下实体:

// ZaquPL/MyBundle/Entity/Task.php
protected $name;
protected $order;

public function getName()         {...}
public function setName($name)    {...}
public function getOrder()        {...}
public function setOrder($order)  {...}

我想要一个包含多个实体的表单。这是因为我想对任务进行“拖放”排序)并以一种形式更改它们的名称,使用一个提交按钮并且没有 AJAX.

在该架构中应该看起来像:

[GRAB AND MOVE <INPUT name="order[1]">] <INPUT name="name[1]">
[GRAB AND MOVE <INPUT name="order[2]">] <INPUT name="name[2]">
[GRAB AND MOVE <INPUT name="order[3]">] <INPUT name="name[3]">
[GRAB AND MOVE <INPUT name="order[4]">] <INPUT name="name[4]">
[GRAB AND MOVE <INPUT name="order[5]">] <INPUT name="name[5]">
[GRAB AND MOVE <INPUT name="order[6]">] <INPUT name="name[6]">

我知道如何创建视图,如何使用 jquery UI 拖放组件等,所以不用担心。我只问如何使用 Symfony FormBuilder 创建此表单。你有什么想法吗?

我想你想创建一个 collection 的形式:doc。 在第一次持久化时,订单由您的请求 header 订单定义。但是,如果您编辑此 collection,您不能只提交另一个订单并坚持。 要更改您的 collection 订单,您可以:

  • 在编辑时删除最后一个 collection 并保留新的 collection
  • 使用一个属性来管理您的订单
  • 序列化你的collection(我知道有点毛骨悚然)

希望对你有帮助