私はフランチャイズを編集するためのテンプレートを持っています。そのテンプレートの中に私は2つのことがあります:データベースに既に保存されているすべてのフランチャイズを持つサマリーテーブルを表示し、各行に「編集」ボタンがあり、フランチャイズのデータで満たされたフォームを表示する組込みコントローラ現在編集中です。Symfony2エンベデッドコントローラとフォーム検証の問題
問題は、フォームを処理して、検証が失敗した場合、エンベデッドコントローラによって作成されたサマリーテーブルは、私がフォームに入力した値で修正しようとしているフランチャイズを表示します検証に合格しておらず、データベースは更新されませんでした。埋め込みで使用
public function editarAction($superusuario_id, $franquicia_id)
{
$request = $this->getRequest();
$em = $this->getDoctrine()->getEntityManager();
$franquicia = $em->getRepository('FacturaBundle:Franquicia')->findOneById($franquicia_id);
$form = $this->createForm(new FranquiciaType(), $franquicia);
if($request->getMethod() == 'POST')
{
$form->bindRequest($request);
if($form->isValid())
{
$em = $this->getDoctrine()->getEntityManager();
$em->persist($franquicia);
$em->flush();
return $this->redirect($this->generateUrl('s_listar_franquicias', array('superusuario_id'=>$superusuario_id)));
}
}
return $this->render('FacturaBundle:Superusuario:franquicia-editar.html.twig',
array('superusuario_id'=>$superusuario_id,
'franquicia_id'=>$franquicia_id,
'form'=>$form->createView(),
'franquicia'=>$franquicia));
}
方法:
コードは単に明確化のため、ので、いくつかのスペイン語の単語を有し、「franquicia」は「フランチャイズ」
をフォームをレンダリングし、検証するための方法があることを意味しますコントローラは次のとおりです。
public function listarTodasAction($superusuario_id)
{
$em = $this->getDoctrine()->getEntityManager();
$franquicias = $em->getRepository('FacturaBundle:Franquicia')->findAll();
return $this->render('FacturaBundle:Superusuario:franquicia-listar-todas.html.twig', array('superusuario_id'=>$superusuario_id, 'franquicias'=>$franquicias));
}
必要であれば、それは長すぎるのですが、私はそれを行いますので、私はテンプレートのコードを貼り付けていませんよ。
誰でも手伝ってもらえますか?
ありがとうございました。 –