2012-08-07 144 views
1

我正在使用Symfony2和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()返回「編輯」

中的每一個都有自己的提交按鈕。我怎樣才能得到提交按鈕被按下的表單的名稱?我想要做的事情是找到控制器識別哪個按鈕被按下的方式,因爲他們每個人都應該做出不同的事情。

+0

爲什麼不能簡單地用兩個獨立的控制器來處理形式? – gilden 2012-08-07 08:38:18

+0

我需要相同的網址:( – Faery 2012-08-07 08:42:13

回答

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 
} 
+0

非常感謝!:) – Faery 2012-08-07 08:55:53