1

Doctrine と Twig で Symfony2 を使用しています。この方法で作成された 2 つのフォームがあります。

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';
    } 
}

2 番目も同様ですが、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 に答える