【发布时间】:2017-05-09 16:05:27
【问题描述】:
我使用form.factory 创建表单并使用twig 来呈现表单。在这种情况下,我必须使用 PUT 方法。我的代码是:
控制器:
$builder = $this->get('form.factory')->createNamedBuilder();
$form = $builder
->add('id', HiddenType::class, array('data' => $id))
->add('email', EmailType::class, array(
'required' => false,
'data' => count($res['result'][0]['email']) ? $res['result'][0]['email'] : '',
'attr' => array('class' => 'form-control label_form_symfony'),
'constraints' => array(
new Email(array('message' => 'il campo Email non è valido'))
)
))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $request->isXmlHttpRequest()) {
$data = $form->getData();
if ($form->isValid()) {
// save ...
}
}
树枝模板:
{{ form_start(form,{'method':'PUT','attr':{action: path('update_xxx',{'id' : id})}}) }}
{{ form_widget(form, {'attr' : {'class' : 'label_form_symfony' } } ) }}
<button type="submit" class="submit_form btn btn-default">Save</button>
<div id="feedback"></div>
{{ form_end(form) }}
当我提交表单时,我的 $request->getMethod() 是 PUT,但我的 $form->isSubmitted() 是 false。
在我的 HTML 中,我什至有隐藏字段:
<input type="hidden" name="_method" value="PUT">
更新
我添加了
$builder->setMethod('PUT') 在我的控制器中并从我的树枝中删除 'method':'PUT',当我提交表单时,我收到此错误 This form should not contain extra fields.
【问题讨论】:
标签: symfony symfony-forms