2012-06-11 50 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