私はウィンドウ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にチェックを。どのように文字列のすべてのフォームエラーを取得するには、私にお勧めできますか? –
開発者のデバッグツールバーを確認してください。送信されたフォームのフォームエラーが表示されます。また、 '{{form_errors(form)}}'を使用する場合、Twig出力のエラーをリストする必要があります(ユーザにエラーを表示する必要があります)。 – Hidde
エラーを見つけて修正しましたが、更新しない? –