Symfony2:两个表单在同一个页面中 [英] Symfony2 : Two forms in a same page

查看:112
本文介绍了Symfony2:两个表单在同一个页面中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我的问题是当我尝试提交表单时,就好像它试图提交下面的第二个表单在页面中。



如下所示,您可以找到我的两种表单:

  public function createSuiviForm(){

return $ form = $ this-> createFormBuilder(null)
- > add('numero','text',array ('label'=>'N°:',
'constraints'=> array(
new Assert\NotBlank(array('message'=>'XXXX')),
new Assert \Length(array('min'=> 19,'max'=> 19,'exactMessage'=>'XXX {{limit}} XXX'))))
- > add('xxxx','submit')
- > getForm();

$ b $ public function createModificationForm(){

return $ form = $ this-> createFormBuilder(null)
- > add(' ('label'=>'XXXXXXXXXXXXXXXXXXXX'))
- > getForm();
}

我的第二种形式只是提交按钮。



我将它们传递给我的渲染器,并使用以下代码显示它们:

 < div class =以及> 
< form method =postaction =''{{form_enctype(form)}}>
{{form_widget(form)}}
< input type =submitclass =btn btn-primary/>
< / form>
< div class ='errors'>
{{form_errors(form)}}
< / div>
< / div>

'form'是我的变量名称,以第一种形式
和'update'对于我的第二种形式。



当我尝试提交我的第二个表单时,我需要点击两次,最后得到:

 此表单不应包含额外的字段。 
以及剩余表单的所有非有效输入。

我尝试将validation_group添加到false但无济于事。



我不明白为什么我得到这个错误,因为我的表格根本没有嵌入



我希望你能理解...

解决方案

您必须分别处理表单:

  if('POST'=== $ request-> getMethod()){

if($ request-> request-> has('form1name')){
//处理第一个表格
}

if($ request-> request-> has('form2name')){
//处理第二个表格形式
}
}

这完全在 Symfony2多种形式:与嵌入式表单不同


I've got two forms in a same page.

My problem is when I tried to submit a form, it's like it tried to submit the second form below in the page as well.

As follow, you can find my 2 forms :

public function createSuiviForm() {

    return $form = $this->createFormBuilder(null)
            ->add('numero', 'text', array('label' => 'N° : ',
                'constraints' => array(
                    new Assert\NotBlank(array('message' => 'XXXX')),
                    new Assert\Length(array('min' => 19, 'max' => 19, 'exactMessage' => 'XXX {{ limit }} XXX')))))
            ->add('xxxx', 'submit')
            ->getForm();
}

public function createModificationForm() {

    return $form = $this->createFormBuilder(null)
            ->add('modification', 'submit', array('label' => 'XXXXXXXXXXXXXXXXXXXX'))
            ->getForm();
}

My second form as only a submit button.

I passed them to my render and display them by using :

<div class="well">
    <form method="post" action='' {{form_enctype(form)}} >
        {{ form_widget(form) }}
        <input type="submit" class="btn btn-primary"/>
    </form>
    <div class='errors'>
        {{ form_errors(form) }}
     </div>
</div>

'form' is the name of my variable to the first form and 'update' for my second form.

When I attempted to submit my second form, I need to click twice and finally I get :

"This form should not contain extra fields."
And all non valid input for the remainding form.

I tried to add validation_group to false but to no avail.

I don't understand why I got this error because my forms are not embedded at all

I hope you will understand...

解决方案

You have to treat the forms separately:

if('POST' === $request->getMethod()) {

    if ($request->request->has('form1name')) {
        // handle the first form  
    }

    if ($request->request->has('form2name')) {
        // handle the second form  
    }
}

This is perfectly explained in Symfony2 Multiple Forms: Different From Embedded Forms

这篇关于Symfony2:两个表单在同一个页面中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆