2013-01-11 42 views
0

我嘗試做編輯表單中的Symfony如何創建編輯/更新形式

public function editAction() 
{ 
    $id  = 5; 
    $em  = $this->getDoctrine()->getEntityManager(); 
    $request = $this->get('request'); 
    $entity = $em->getRepository('SurgeryPatientBundle:Patients')->find($id); 
    $form = $this->createForm(new \Surgery\PatientBundle\Form\PatientsType(), $entity); 
    $form->bindRequest($request); 

    return $this->render('SurgeryPatientBundle:Patient:newpatient.html.twig',array('form'=>$form->createView())); 

    if($form->isValid()) 
    { 
    //do someting 
    } 
    else 
    { 
    //do something 
    } 
} 

我仍然得到空的形式沒有數據,變量$entity是isset。我沒有插入表單,但我無法處理編輯操作。我不想使用終端和php app/console創建表單,因爲我想知道它是如何做到的。

+2

返回在$ form-> isValid()之前做了什麼? – j0k

+0

閱讀http://symfony.com/doc/current/book/forms.html –

回答

0

假設你正在使用symfony的2.0.x版本

你不應該將數據發送到視圖之前您的要求結合,既檢驗了提交的數據(我猜你向我們展示測試代碼)之前渲染視圖

public function editAction() 
{ 
    $id  = 5; 
    $em  = $this->getDoctrine()->getEntityManager(); 
    $request = $this->get('request'); 
    $entity = $em->getRepository('SurgeryPatientBundle:Patients')->find($id); 
    $form = $this->createForm(new \Surgery\PatientBundle\Form\PatientsType(), $entity); 

    if ($request->getMethod() == 'POST') { 
     $form->bindRequest($request); 

     if ($form->isValid()) { 
      return $this->redirect($this->generateUrl('task_success')); 
     } 
    } 

    return $this->render('SurgeryPatientBundle:Patient:newpatient.html.twig',array('form'=>$form->createView())); 
} 
+0

它的工作原理,謝謝你;) – konadrian