Php Symfony2在缺少表单索引时复制集合实体

Php Symfony2在缺少表单索引时复制集合实体,php,forms,entity-framework,symfony,Php,Forms,Entity Framework,Symfony,我正在使用Symfony 2及其表单组件来管理一些关系 $builder->add('locations', 'collection', array( 'type' => new LocationType(), 'options' => array("em" => $this->em), "allow_add" => true, "by_reference" => false, "allow_delete"

我正在使用Symfony 2及其表单组件来管理一些关系

$builder->add('locations', 'collection', array(
    'type' => new LocationType(), 
    'options' => array("em" => $this->em), 
    "allow_add" => true, 
    "by_reference" => false, 
    "allow_delete" => true, 
    "delete_empty" => true
));
我对额外字段使用多2多关系,所以我使用多对一和一对多

就像我想要的那样。可以创建新实体。为了删除实体,我提供了一个AJAX函数,该函数从DB中删除该项,并删除表单中相应的HTML部分

当集合中有2个实体时,删除第一个实体,不重新加载表单,表单只剩下一个实体元素。但是这个有索引1,而不是0。当我提交表单时,我复制了最后一个实体。这不是我想要的

只有在删除第一个位置时才会出现问题,因此只有在存在“索引间隙”时才会出现问题

我怎样才能避免这种情况?有选择吗?

找到了解决方案

在预绑定事件中,我执行以下操作:

$data["locations"] = array_values($data["locations"]);
这将从阵列中删除间隙