1
我使用form.factory
創建一個窗體和樹枝來呈現形式。在這種情況下,我必須使用PUT
方法。我的代碼是:形式isSubmitted在Symfony形式與僞裝方法的虛假
控制器:
$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.
with'$ builder-> setMethod('PUT')'我有這個錯誤'這個表格不應該包含額外的字段。' – monkeyUser
因爲您忘記刪除了' - 這是一個額外的領域。 –
我不添加''Symfony爲我做的。現在我刪除''方法':'PUT''form Twig並添加'$ builder-> setMethod('PUT')'並在我的Html中有'因爲Symfony是這樣做的 – monkeyUser