我准备了自定义表单类型类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中的所有其他属性。当我只提交一个输入时,如何避免清除其他字段。
答案 0 :(得分:0)
当您致电$form->handleRequest()
时,表单会将其所有值传递给实体。如果未提交任何值,则会将其重置为默认值。如果您希望将值保留原样,则必须从表单中删除该字段。
您可以为每个只包含可修改字段的案例单独定义表单,也可以在现有表单上使用remove
方法删除每个表单中不希望保留的字段情况下。