1

我正在将 Symfony2 与 Doctrine 和 Twig 一起使用。我有两种以这种方式创建的表格:

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'

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

4

1 回答 1

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
}
于 2012-08-07T08:50:24.337 回答