1

我有一份工人通过任务的“小时”清单。管理员可以检查它们(复选框)以将它们添加到账单中,(但他可以调整实际时间)

所以,我选择了一个小时数组,在我的控制器中我得到了小时数:

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

等了$hours一个多小时,我想如果我用 $hours 创建一个表单,它会自动显示多个字段..

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

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

我试着这样。但这并没有解决,因为如果我返回一组表单我不能这样做'form' => $form->createView(),所以我无法呈现表单......

4

1 回答 1

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();
}

然后,将此数组传递给 Twig:

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

最后在 Twig 中从数组中渲染每个表单视图:

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

我希望这有帮助 ;)

于 2012-07-25T09:29:34.833 回答