Php Symfony2在缺少表单索引时复制集合实体
我正在使用Symfony 2及其表单组件来管理一些关系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"
$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"]);
这将从阵列中删除间隙