Symfony2从控制器中的表单中删除集合重复项

时间:2015-04-28 07:08:38

标签: php forms symfony duplicates

我有一个包含集合的表单(允许添加和删除实体)和一个验证约束,以检查是否有重复的用户选择。

如果存在重复项,则会在新/编辑表单中重定向用户并显示错误消息。 在这种情况下,我正在寻找一种在渲染视图之前从表单中删除重复字段的方法吗?

我可以从我的实体列表中删除重复项,但不能从表单字段中删除。

public function createAction(Request $request)
{
    ...

    $form = $this->createCreateForm($entity);
    $form->handleRequest($request);

    if ($form->isValid()) {

        ...

        $em = $this->getDoctrine()->getManager();
        $em->persist($entity);
        $em->flush();

        return $this->redirect($this->generateUrl('ispc_show', array('id' => $entity->getId())));
    }

    // Remove the duplicates from the list in the entity
    $entity->removeDuplicate();
    // And apply to the form
    $form->remove....

    return $this->render('CompanyDocumentBundle:ISPC:new.html.twig', array(
        'entity' => $entity,
        'form'   => $form->createView(),
    ));
}

更新

我不想在验证之前删除重复项,因为错误消息对于向用户报告很重要。此外,重复项是“$ request”对象的一部分,表单字段填充此对象,而不是实体。

0 个答案:

没有答案