Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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
Forms 未定义的方法Symfony\Component\Form\FormBuilder::createView()_Forms_Symfony_Symfony Forms_Symfony 2.3 - Fatal编程技术网

Forms 未定义的方法Symfony\Component\Form\FormBuilder::createView()

Forms 未定义的方法Symfony\Component\Form\FormBuilder::createView(),forms,symfony,symfony-forms,symfony-2.3,Forms,Symfony,Symfony Forms,Symfony 2.3,我得到一个错误: Call to undefined method Symfony\Component\Form\FormBuilder::createView() 对于以下代码 public function searchAction(Request $request, $type) { $filters = new Filters(); $form = $this->createFormBuilder($filters) ->setActi

我得到一个错误:

Call to undefined method Symfony\Component\Form\FormBuilder::createView() 
对于以下代码

public function searchAction(Request $request, $type) {

    $filters = new Filters();

    $form = $this->createFormBuilder($filters)
        ->setAction($this->generateUrl('project_search'))
        ->add('name', 'text');

    if($type == 'extra') {
        $form->add('job', 'text');
    }


    $form->add('send', 'submit', array('label' => "Envoyer"))
        ->getForm();


    return $this->render('Bundle:Controller:search.html.twig', array(
        'form' => $form->createView(),
    ));
}

我相信这是因为我添加了一个新的输入
$form->add('job','text')。如何修复此问题?

您需要引用
表单
实例,而不是
表单生成器
。您已经在使用返回所需引用的
getForm()
方法,但您没有在任何地方对其进行辅助

$filters = new Filters();

$formBuilder = $this->createFormBuilder($filters)
    ->setAction($this->generateUrl('project_search'))
    ->add('name', 'text');

if($type == 'extra') {
    $formBuilder->add('job', 'text');
}


$formBuilder->add('send', 'submit', array('label' => "Envoyer"));
$form = $formBuilder->getForm();


return $this->render('Bundle:Controller:search.html.twig', array(
    'form' => $form->createView(),
));