2014-04-20 54 views
0

我有一個簡單的表格:Symfony2-提交按鈕導致「額外字段」的錯誤

class SignInType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('_username', 'text'); 
     $builder->add('_password', 'password'); 
     $builder->add('Sign in', 'submit'); 
    } 

    public function getName() 
    { 
     return 'sign_in'; 
    } 
} 

,我在我的「簽到」行動呼籲:

public function signInAction() 
{ 
    $form = $this->createForm(new SignInType(), null, 
     [ 'action' => $this->generateUrl('my_project_account_sign_in_process') ] 
    ); 

但是結合POST請求導致無效格式,錯誤爲This form should not contain extra fields。它似乎是導致問題的提交按鈕 - 我該如何解決這個問題?

public function signInProcessAction(Request $request) 
{ 
    $doctrineManager = $this->getDoctrine()->getManager(); 

    $form = $this->createForm(new SignInType()); 

    $form->handleRequest($request); 
    ... 
+0

請提供您用來顯示形式的樹枝。什麼是createAction的意思? – Healkiss

+0

@Healkiss我的樹枝視圖只包含'{{form(form)}}'。對不起,'createAction'是我換了我的示例 - 現在修復了一個錯字。 – Jonathan

+0

'$ this-> createForm(new SignUpType(),new SignUp())'是另一個錯字錯誤嗎?因爲我們無法確定SignUpType === SignInType。 – Healkiss

回答

0

然後錯誤This form should not contain extra fields肯定是由沒有名字的表格造成的。 Symfony無法獲得表單字段並嘗試獲取一些隨機的其他元素?

+0

設置名稱沒有區別。該錯誤特別說明它是提交按鈕('登錄'),這是無關的,因此也是問題。 – Jonathan

1

我已經從我的按鈕的名稱去掉空間固定的:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    ... 
    $builder->add('Sign_in', 'submit'); 
} 
+0

幹得好!謝謝 :) – Healkiss