调用 isSumbitted() 和 isValid() 导致“未定义的方法";错误 [英] Calls to isSumbitted() and isValid() result in "undefined method" error
问题描述
我有一个 Symfony 表单,它是从控制器中的 createFormBuilder() 创建的.但是在两个 IF 语句下,表单应该带有两个不同的字段集.我的 Symfony 版本是 3.4.
I have a Symfony form that is created from createFormBuilder() in the controller. But under two IF statements the form should carry two different set of fields. My Symfony version is 3.4.
/src/AppBundle/Controller/DefaultController.php
/src/AppBundle/Controller/DefaultController.php
例如:这是基本形式.
$form = $this->createFormBuilder()
->add('name', TextType::class, ['required' => true]])
->add('email', EmailType::class, ['required' => true]])
->getForm();
if ($form->isSubmitted() && $form->isValid()) {
...
...
...
}
现在,当条件成立时,我需要向这个基本表单添加更多字段.下面显示的是我所做的,它给了我一个错误.
Now I need to append few more fields to this basic form when a condition becomes true. Shown below is what I did and it gives me an error.
$form = $this->createFormBuilder()
->add('name', TextType::class, ['required' => true]])
->add('email', EmailType::class, ['equired' => true]]);
if($a==true){
$form->add('username', TextType::class, ['required' => true]])
->add('password', PasswordType::class, ['required' => true]]);
}
$form->getForm();
if ($form->isSubmitted() && $form->isValid()) {
...
...
...
}
错误是:
试图调用类的名为isSubmitted"的未定义方法Symfony\Component\Form\FormBuilder".
Attempted to call an undefined method named "isSubmitted" of class "Symfony\Component\Form\FormBuilder".
我怎样才能做到这一点?在不同情况下在多个场合追加字段?
How can I get this done? Append fields at multiple occasions under different conditions?
推荐答案
尝试:
$formbuilder = $this->createFormBuilder()
->add('name', TextType::class, ['required' => true]])
->add('email', EmailType::class, ['equired' => true]]);
if($a==true){
$formbuilder->add('username', TextType::class, ['required' => true]])
->add('password', PasswordType::class, ['required' => true]]);
}
$form = $formbuilder->getForm();
if ($form->isSubmitted() && $form->isValid()) {
...
...
...
}
这篇关于调用 isSumbitted() 和 isValid() 导致“未定义的方法";错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!