2014-09-24 5 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.if, вы создаете форму с помощью $this->createFormBuilder(), она будет «формой», но вы можете установить любое имя, которое хотите, используя createNameBuilder формы фабрики. Когда вы выполняете открытие тег формы формы с {{ form_start(form) }} symfony автоматически позаботится об этом для вас. Также имейте в виду, что создание названных форм особенно полезно (необходимо), когда у вас есть несколько форм на одной странице (точнее, когда они action установлен на тот же контроллер).

Смежные вопросы