2013-07-30 274 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

相關問題