如何获取表单的名称 - Symfony2

时间:2012-08-07 07:27:00

标签: php symfony doctrine

我正在使用带有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'

每个都有自己的提交按钮。如何获取按下提交按钮的表单的名称?我想要做的是找到一种控制器来识别按下哪个按钮的方法,因为每个按钮都应该发生不同的事情。

1 个答案:

答案 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
}