所以,我有一个表格,每行都有一个复选框,如下所示:
<form name="" action={{ path('mypath') }}" method="post">
<button name="print">Print</button>
<button name="delete">Delete</button>
<table>
{% for client in clienti %}
<tr>
<td><input type="checkbox" name="action[]" value="{{ client.id }}" /></td>
</tr>
.
.
.
{% endfor %}
</table>
</form>
现在,在我的控制器中我想检查按下了哪个按钮。我该怎么做?
在symfony生成的其他表单中,这很容易,因为我有一个form对象和一个非常有用的方法:
if ($form->get('delete')->isClicked()) {
// delete ...
}
我想知道做这件事的正确方法。
谢谢你。
5条答案
按热度按时间btxsgosb1#
从Symfony 2.3开始,您可以:
表格:
控制器:
参见此处:http://symfony.com/blog/new-in-symfony-2-3-buttons-support-in-forms
eh57zj3b2#
您可以使用例如
lnlaulya3#
只需在表单生成器中创建按钮,在视图中呈现它们,并使用您已经在其他表单中使用过的相同方法:
你认为:
q8l4jmvw4#
Symfony3的更新:
yizd12fk5#
对于2023年,如果其他人在这方面有困难,我发现的变通办法如下:
表格:
控制器:
方式与
$form->all()['save_and_add']
类似$form->get('save_and_add')
返回FormInterface
对象,而不是SubmitButton
,因此,您无权访问isClicked()
方法