没有类的Symfony2表单

时间:2015-02-09 20:57:04

标签: forms symfony

我正在关注这个tutorial,而我所要做的就是制作一个简单的表格。我有自定义引导的Symfony2组件(我基本上使用几乎没有FrameworkBundle的所有东西)所以我有这样的代码:

$defaultData = array('message' => 'Type your message here');
       $form = Forms::createFormFactory()->createBuilder($defaultData)
        ->add('name', 'text')
        ->add('email', 'email')
        ->add('message', 'textarea')
        ->add('send', 'submit')
        ->getForm();

您可以看到唯一的区别是我如何获取formfactory实例。  这是我得到的错误:

  

未捕获的异常   'Symfony \ Component \ Form \ Exception \ UnexpectedTypeException'with   消息'类型的预期参数“字符串,   Symfony \ Component \ Form \ ResolvedFormTypeInterface或   Symfony \ Component \ Form \ FormTypeInterface“,”数组“给出”

关于我做错什么的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

您没有按照说明操作本教程。 Forms::createBuilder() method想要知道您在第一个参数中创建的表单类型,而不是默认选项。默认选项适用于此上下文中的第二个参数。您可以在Controller API文档中examine the createFormBuilder method查看差异。

您应该在教程中使用createFormBuilder()辅助方法,因为它代表您在内部传递适当的createBuilder()方法参数:

$defaultData = array('message' => 'Type your message here');
       $form = $this->createFormBuilder($defaultData)
        ->add('name', 'text')
        ->add('email', 'email')
        ->add('message', 'textarea')
        ->add('send', 'submit')
        ->getForm();

如果您坚持按照自己的方式行事,那么这样的事情应该有效:

// ...
$form = Forms::createFormFactory()->createBuilder('form', $defaultData)
// ...