0
我在窗口7中使用symfony3: 此方法應該適用於動作更新和添加,但其行爲僅適用於插入。而我也設置$ ID。爲什麼更新並插入相同的方法在symfony中不起作用?
/**
* @Route("entity/entity/{id}", name="entity_entity",defaults={"id" = 0})
*/
public function entityAction(Request $request,$id){
$action = false;
$arr_XYZ_data = array();
$arr_XYZ_prepare_data = array();
$form_title = 'Add New XYZ';
$obj_XYZ = new XYZ();
$form = $this->createForm(XYZType::class, $obj_XYZ);
if($id!=0){
$obj_repo = $this->getDoctrine()->getRepository('AppBundle:XYZ');
$arr_XYZ_data = $obj_repo->find($id);
if($arr_XYZ_data){
$action = true;
$form_title = 'Update XYZ';
$arr_XYZ_data = $obj_repo->findXYZById($id);
$arr_XYZ_prepare_data = $this->_prepareData($arr_XYZ_data);
}
}
$form->handleRequest($request);
if (($form->isSubmitted())) {
$obj_XYZ->setXYZId($id);
$str_hiddenfield_result = $form->get('extraformfield')->getData();
$arr_hiddenfield_result = explode('&',$str_hiddenfield_result);
$obj_XYZ->setDef($obj_XYZ->getDef()->getDefId());
$obj_XYZ->setAbc($arr_hiddenfield_result[3]);
$obj_XYZ->setAuthor(1); //ldap session value
$em = $this->getDoctrine()->getManager();
$em->persist($obj_XYZ);
$em->flush();
$this->addFlash('success', 'Your record has been added successfully!');
return $this->redirectToRoute('XYZ_index', array(), 301);
}
}
任何人都可以建議我如何實現這一目標?
我檢查的isValid其返回假出事了。如何獲得字符串中的所有表單錯誤,你可以建議我嗎? –
檢查開發人員調試工具欄。它將列出提交表單的表單錯誤。它也應該列出Twig輸出中的錯誤,如果你使用'{{form_errors(form)}}'(並且你應該向用戶顯示錯誤!) – Hidde
我發現了一個錯誤並修復它,但仍然行爲新插入爲什麼沒有更新? –