2012-04-14 77 views
3

有人知道如何在一個頁面中呈現更多表單嗎?Symfony 2 - 多個表單

我有一個實體類ImportPath:id。描述,路徑,本地 和對應於該實體的ImportPathForm。 我想要的是像表格這樣的小東西,它在每一行中都有一點小小的形式,可以編輯其中的一個路徑。

我不知道路徑的最終數量,所以它在一些循環中必須是動態的。 需要從路徑ID中知道需要的表單(尚未實現)。

代碼: 控制器: 公共函數importAction($消息= 「沒有消息」){

$em = $this->getDoctrine()->getEntityManager(); 

$paths = $em->getRepository('WT2\BabuBundle\Entity\ImportPath')->findAll(); 

$forms=array(); 
foreach ($paths as $path) { 
$form = $this->createForm(new ImportPathForm(), $path); 
$forms[]=$form; 
} 

// $request = $this->getRequest(); 
// if ($request->getMethod() == 'POST') { 
// $form->bindRequest($request); 
// if ($form->isValid()) { 
// /* ok */ 
// } 
// } 

return $this->render('WT2BabuBundle:Admin:import.html.twig', array('forms'=>$forms,'message'=>$message)); 
} 

視圖(提取物):

{% for key, form in forms %} 
{{ key }} 
<form action="{{ path('admin_import') }}" method="post" {{ form_enctype(form) }}> 
{{ form_widget(form) }} 
<input type="submit" value="Ym2nit" /> 
</form> 
{% endfor %} 

EDIT>

我明白了:)

的解決方案是

$forms=array(); 
foreach ($paths as $path) { 
$form = $this->createForm(new ImportPathForm(), $path); 
**$form = $form->createView();** 
$forms[]=$form; 
} 
+0

我知道這個網站的工作,但我有小於100的聲譽,不能回答我自己詢問8小時後問... – 2012-04-14 16:03:47

+0

沒問題,現在我可以發佈一個解決方案的答案框:) – 2012-04-15 07:47:59

回答

5

我知道了:)

的解決方案是

$forms=array(); 
foreach ($paths as $path) { 
$form = $this->createForm(new ImportPathForm(), $path); 
$form = $form->createView(); 
$forms[]=$form; 
}