【问题标题】:Undefined method Symfony\Component\Form\FormBuilder::createView()未定义的方法 Symfony\Component\Form\FormBuilder::createView()
【发布时间】:2014-08-19 05:48:47
【问题描述】:

我得到了错误:

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');。我该如何解决这个问题?

【问题讨论】:

    标签: forms symfony symfony-forms symfony-2.3


    【解决方案1】:

    您需要引用Form 实例,而不是FormBuilder。您已经在使用 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(),
    ));
    

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 2017-09-21
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      相关资源
      最近更新 更多