Получить значение поля, не объявленного в 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')
.