Symfony 使用树枝循环生成多种形式
Symfony generate several forms with a twig loop
谁能告诉我为什么这段代码不起作用,我在互联网上找不到这样的例子。
{% for dp in dpList %}
<tr>
<td> //values </td>
<td>....</td>
...
<td>
{{ form_start(display) }}
{{ form_row(display.info, { value: dp.info }) }}
{{ form_rest(display) }}
{{ form_end(display) }}
</td>
</tr>
{% endfor %}
我想要做的是为每一行显示一个按钮 "Display",其中包含该行的隐藏值。它实际上只将按钮显示到第一行。
谢谢!
这是不正确的。表单对象是表单的单个实例,您不能在同一页面上多次呈现它。
您应该有多个表单对象,或者使用其他东西代替表单,例如 link 或带有 javascript 的按钮。
我建议使用 jQuery 和 post()
函数。
我找到了适合我需要的解决方案:
我在私有函数中创建了一个表单:
private function formShow()
{
$show = $this->createFormBuilder()
->setAction($this->generateUrl('admin_platform_show'))
->setMethod('POST')
->add('persno', 'hidden')
->add('Show', 'submit')
->getForm();
return $show;
}
然后在我的控制器中我创建了一个 arrayList,在我将拥有的每一行上都有一个循环,所以它会生成我需要的表单:
foreach ($idmList as $idm)
{
$show = $this->formShow()->createView();
$arrayForms[] = $show;
}
然后我将我的 arrayList 发送到我的视图并访问每个表单,如下所示:
{{ form_start(arrayForms[loop.index0]) }}
{{ form_row(arrayForms[loop.index0].persno, { value: idm.persno }) }}
{{ form_rest(arrayForms[loop.index0]) }}
{{ form_end(arrayForms[loop.index0]) }}
通过这种方式,我使用了 symfony 制作的安全表单,其中包含行的特定值,如果我按下提交按钮,我将在另一个控制器中重复使用该值。
希望对某人有所帮助。
谁能告诉我为什么这段代码不起作用,我在互联网上找不到这样的例子。
{% for dp in dpList %}
<tr>
<td> //values </td>
<td>....</td>
...
<td>
{{ form_start(display) }}
{{ form_row(display.info, { value: dp.info }) }}
{{ form_rest(display) }}
{{ form_end(display) }}
</td>
</tr>
{% endfor %}
我想要做的是为每一行显示一个按钮 "Display",其中包含该行的隐藏值。它实际上只将按钮显示到第一行。
谢谢!
这是不正确的。表单对象是表单的单个实例,您不能在同一页面上多次呈现它。
您应该有多个表单对象,或者使用其他东西代替表单,例如 link 或带有 javascript 的按钮。
我建议使用 jQuery 和 post()
函数。
我找到了适合我需要的解决方案:
我在私有函数中创建了一个表单:
private function formShow()
{
$show = $this->createFormBuilder()
->setAction($this->generateUrl('admin_platform_show'))
->setMethod('POST')
->add('persno', 'hidden')
->add('Show', 'submit')
->getForm();
return $show;
}
然后在我的控制器中我创建了一个 arrayList,在我将拥有的每一行上都有一个循环,所以它会生成我需要的表单:
foreach ($idmList as $idm)
{
$show = $this->formShow()->createView();
$arrayForms[] = $show;
}
然后我将我的 arrayList 发送到我的视图并访问每个表单,如下所示:
{{ form_start(arrayForms[loop.index0]) }}
{{ form_row(arrayForms[loop.index0].persno, { value: idm.persno }) }}
{{ form_rest(arrayForms[loop.index0]) }}
{{ form_end(arrayForms[loop.index0]) }}
通过这种方式,我使用了 symfony 制作的安全表单,其中包含行的特定值,如果我按下提交按钮,我将在另一个控制器中重复使用该值。
希望对某人有所帮助。