我有一份工作人员通过任务的“小时”清单。管理员可以检查它们(复选框)以将它们添加到账单中(但他可以调整实际时间)
所以,我选择了一小时,在我的控制器中,我得到了几个小时:
$hours = $repository->findBy(array('id' => $tabHour));
所以$hours
计算了一个多小时,我想如果我用$小时创建一个表单,它会自动显示多个字段..
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 :(得分: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 %}
我希望这会有所帮助;)