Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调用issumbit()和isValid()会导致;“未定义的方法”;错误_Php_Symfony_Symfony4_Symfony Forms_Symfony 3.4 - Fatal编程技术网

Php 调用issumbit()和isValid()会导致;“未定义的方法”;错误

Php 调用issumbit()和isValid()会导致;“未定义的方法”;错误,php,symfony,symfony4,symfony-forms,symfony-3.4,Php,Symfony,Symfony4,Symfony Forms,Symfony 3.4,我有一个Symfony表单,它是从控制器中的createFormBuilder()创建的。但是在两个IF语句下,表单应该包含两组不同的字段。我的Symfony版本是3.4 /src/AppBundle/Controller/DefaultController.php 这是基本形式 $form = $this->createFormBuilder() ->add('name', TextType::class, ['required' => true]]) -&g

我有一个Symfony表单,它是从控制器中的createFormBuilder()创建的。但是在两个IF语句下,表单应该包含两组不同的字段。我的Symfony版本是3.4

/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()) {
        ...
        ...
        ...
}
现在,当一个条件变为真时,我需要在这个基本表单中附加几个字段。下面显示的是我所做的,它给了我一个错误

$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()) {
        ...
        ...
        ...
}
错误是:

试图调用类的名为“issubmited”的未定义方法 “Symfony\Component\Form\FormBuilder”

我怎样才能做到这一点?在不同条件下多次追加字段

试试看:

$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()) {
        ...
        ...
        ...
}
使用$form->getForm()->isSubmitted()?