我正在关注这个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“,”数组“给出”
关于我做错什么的任何想法?谢谢!
答案 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)
// ...