从symfony2中的表单类型发送单个输入

时间:2015-10-27 22:57:07

标签: php forms symfony

我准备了自定义表单类型类CheckListFormType。我那里有很多田地。

public function updateCheckList(Request $request)
{
    $em = $this->getDoctrine()->getManager();

    $checkListId = $request->get('checkListId');
    $checkListRepository = $this->getDoctrine()->getRepository('AppBundle:CheckList');
    $checkList = $checkListRepository->find($checkListId);

    if(!$checkList){
        return new JsonResponse(array(
            'success' => false
        ));
    }

    $form = $this->createForm(new CheckListType(), $checkList);
    $form->handleRequest($request);

    $em->persist($checkList);
    $em->flush();


    return new JsonResponse(array(
       'success' => true
    ));
}

接下来,我在Controller

中采取了行动
001

接下来,我对此表单类型有很多观点。在某些视图中,用户只能编辑'serialNumber',其他用户只能编辑'checkMend'等。

现在,当我从视图提交表单时,只有一个字段,doctrine清除CheckListEntity中的所有其他属性。当我只提交一个输入时,如何避免清除其他字段。

1 个答案:

答案 0 :(得分:0)

当您致电$form->handleRequest()时,表单会将其所有值传递给实体。如果未提交任何值,则会将其重置为默认值。如果您希望将值保留原样,则必须从表单中删除该字段。

您可以为每个只包含可修改字段的案例单独定义表单,也可以在现有表单上使用remove方法删除每个表单中不希望保留的字段情况下。