2013-07-30 275 views
0

我最近开始使用Symfony2来创建一个简单的Web应用程序。其主要功能是保存/使用的形式让我加入FormType的代码和控制器从数据库中获取数据:如何将表单数据保存到数据库中

<?php 
class RegistroController extends Controller{ 

    public function registrofamAction(){ 
     $peticion = $this->get('request'); 
     $em = $this->get('doctrine')->getEntityManager(); 

     $familia = new Familia(); 

     $familia->setRol($rol='fam'); 

     $form = $this->get('form.factory')->create(
       new FamiliaType(), 
       array() 
       ); 


     $form->setData($familia); 

     if ($peticion->getMethod() == 'POST') { 
      $form->bind($peticion); 


      if ($form->isValid()) { 

       $familia->setProgenitor1($Nombrep1); 

       $em->persist($familia); 
       $em->flush(); 
      } 
     } 

     return $this->render('PreditBundle:Default:registro.html.twig', array('form' => $form->createView())); 
    } 




} 
?> 

我知道这将是容易的,但我没有明确的形式如何回到你身边。是$peticion中的表单吗?我如何管理表单信息和数据库?

谢谢大家!

回答

0

该表格位于$form变量中。当您第一次运行控制器时,您可能处于GET模式,并且您使用新的Familia构建了$form。 在第二次通话中,在树枝上做了POST之后,您将bind请求数据($petition)转换为$form,然后验证它,如果一切正常,则使用原则实体管理器坚持$familia

你有什么是在symfony的书解释相当不错的典型控制器:

http://symfony.com/doc/current/book/forms.html

仔细阅读symfony的书http://symfony.com/doc/current/book/index.html我知道这是一个相当的文献阅读,但待遇不错因为描述得非常好。

+0

首先感谢您的关注。我最近发现了这个问题。这是它不进入if($ form-> isValid())。现在我试图找出 – Droyo

+0

表格有什么问题,使用'$ form-> getErrors()'来获取验证错误或将它们输出到树枝中。 – saamorim

+0

@Droyo,你是否设法克服你的问题? – saamorim

0

在这里你会得到你的请求方法formulaire,然后将数据现在是在$请愿变量(可以显示这个变种,看看它是如何构建的)

然后你“捆绑”在你的表单中的数据对象,如果这是正确的数据是坚持

+0

首先感谢您的关注。我最近发现了这个问题。这是它不进入if($ form-> isValid())。现在我试图找出表格有什么问题 – Droyo

+0

这可能是因为发送的数据不正确 – Freelancer

相关问题