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は設定されています. フォームを挿入しましたが、編集アクションでは処理できません。ターミナルを使用してフォームを作成したくありませんphp app/console。その方法を知りたいからです。

4

1 に答える 1

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()));
}
于 2013-01-11T09:53:15.307 に答える