2012-06-11 49 views
1

我有一個工作時間通過的「小時」列表。管理員可以檢查他們(複選框)將它們添加到一個法案,(但他能適應現實小時)symfony2顯示錶格字段的兩倍

所以,我有選擇的小時的數組,在我CONTROLER我得到的時間:

$hours = $repository->findBy(array('id' => $tabHour)); 

所以$hours countain一個多小時,我想,如果我是創建帶有$小時的形式,它將會被自動顯示的字段不止一次..

foreach($hours as $key => $test){ 

    $billedHour[$key] = new BilledHour(); 
    $form[$key] = $this->container->get('form.factory')->create(new BillMandateForm(), $hour); 
} 

我試圖做類似this。但它不解決,因爲如果我返回的形式我做不到'form' => $form->createView(),所以我無法呈現的形式收集...

+0

哎,沒回答我仍然能夠做到這一點,與關係類的方法(多對一)因爲一個賬單有很多billedhours,所以這個我可以生成字段(並在javascript中解析它)。 但我仍然不知道如何在頁面中顯示多個表單,如果我想同時創建2個實體? – RaFF

回答

0

嘗試收拾你的所有的表單視圖陣列

$billedHours = array(); 
$forms = array(); 
foreach($hours as $hour) { 
    $billedHours[] = new BilledHour(); 
    $forms[] = $this->container->get('form.factory')->create(new BillMandateForm(), $hour); 
} 

然後,創建的呈現形式觀點

陣列
$formsToRender = array(); 
foreach($forms as $form) { 
    $formsToRender[] = $form->createView(); 
} 

然後,通過這個數組嫩枝:

... 
'forms' => $formsToRender 
... 

最後,在枝條呈現每個的形式欣賞到數組:

{% for form in forms %} 
    {{ form_row(form.id) }} {# or form_widget(form) if you want to render whole from instead of some fields #} 
{% endfor %} 

我希望這有助於;)

+0

謝謝你的回答,我以爲我嘗試了像你一樣渲染表單。我認爲我仍然有一些問題,但正如我在評論中所說,我使用關係來生成表單。 – RaFF