2014-09-24 86 views
0

我已經設置了一個沒有類的表單,但是當我提交它時,字段數據爲空。Symfony2 getData返回空字段

控制器:

public function indexAction(Request $request) 
{ 
    $form = $this->createFormBuilder() 
     ->add('barcode', 'text') 
     ->getForm(); 
    $form->handleRequest($request); 
    if ($form->isValid()) { 
     $data = $form->get('barcode')->getData(); 
     var_dump($data); 
    } 

    return compact('form'); 
} 

查看:

<form action="{{ path('incompass_sterilization_scanning_index') }}" method="post" {{ form_enctype(form) }} class="form-inline scan"> 
    {{ form_errors(form) }} 
    {{ form_row(form._token) }} 
    {{ form_errors(form.barcode) }} 
    <span class="glyphicon glyphicon-barcode" style="font-size:18px;"></span> 
    <input type="text" id="barcode" class="form-control" placeholder="{% trans %}Scan Bar Code{% endtrans %}" name="barcode" required="required" autofocus="true" /> 
</form> 

當我輸入antying到條形碼,後續代碼var_dump的結果總是NULL

我做了什麼錯在這裏?

感謝

回答

0

這可能是因爲您的形式開始標記的name HTML屬性。 而不是<form .... ></form>,使用{{ form_start(form) }}{{ form_end(form) }} 或將name="form"添加到您的表單打開標記。
name屬性必須與您在symfony中的表單名稱相同。如果您使用$this->createFormBuilder()創建表單,它將是「表單」,但您可以使用表單工廠的createNameBuilder設置任何名稱。當您呈現開頭你的表格標籤與{{ form_start(form) }} symfony會自動爲你處理它。請記住,當你在一個頁面中有多個表單時(更準確地說,當他們是action時,創建命名錶單尤其有用(必要)被設置爲相同的控制器)。