我正在使用带有Doctrine和Twig的Symfony2。我有两种形式:
class PaymentsType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('date', 'date', array('widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'required' => false));
// ...
}
public function getName()
{
return 'payments';
}
}
第二个类似,但getName()返回'edit'
每个都有自己的提交按钮。如何获取按下提交按钮的表单的名称?我想要做的是找到一种控制器来识别按下哪个按钮的方法,因为每个按钮都应该发生不同的事情。
答案 0 :(得分:2)
以下内容应该有效:
public function processAction(Request $request)
{
$form_a = $this->createForm(new FormAType());
$form_b = $this->createForm(new FormBType());
if ($request->request->has($form_a->getName())) {
// form a was sent
} else if ($request->request->has($form_b->getName())) {
// form b was sent
}
// any additional code
}