Получить значение поля, не объявленного в FormType

У меня есть форма, объявленная в nameType.php, и поле визуализации рендеринга все, но я хочу добавить другое поле вручную.

форма:

<form action="{{ path('create') }}" method="post" {{ form_enctype(form) }}>
    {{ form_widget(form) }}
    <input type="text" value="2">
   </form>

И получите значения в контроллере:

$form->bindRequest($request);

Как я могу собрать значение ввода в контроллере?

Ответ 1

Если вы пытаетесь это сделать, потому что форма связана с вашим полем объекта, вы можете добавить поле в FormType как не отображаемое. Тогда вам не нужны геттеры и сеттеры на вашей сущности.

->add("inputName", "text", array("mapped"=>false, "data"=>2, "label"=>false))

Чтобы получить данные в контроллере:

$form->get("inputName")->getData();

Ответ 2

Вы не можете получить значение input из $form, потому что оно не является его частью.

Вы должны извлечь его из request в Controller с помощью атрибута name:

HTML: <input type="text" value="2" name"var_name">

Контроллер: $request->request->get('var_name')

Ответ 3

как можно собрать значение входа в контроллер?

Способ мгновенного удовлетворения будет заключаться в использовании

$form->get('inputName')->getViewData()

для неотображенного поля. Но я уверен, что есть лучшие способы, которые совместимы с Symfony.

Ответ 4

После вызова $form->bindRequest($request) вы можете вызвать: $form->getData(), чтобы получить вход от пользователя.

Но если вы хотите получать входные данные для поля, которое не отображается, вам нужно использовать упомянутый $request->request->get('field_name').