Forms 没有类的Symfony2表单
我正在遵循这一点,我所要做的就是制作一个简单的表单。我有定制的自举Symfony2组件,基本上我使用的几乎所有东西都没有FrameworkBundle,所以我有如下代码:Forms 没有类的Symfony2表单,forms,symfony,Forms,Symfony,我正在遵循这一点,我所要做的就是制作一个简单的表单。我有定制的自举Symfony2组件,基本上我使用的几乎所有东西都没有FrameworkBundle,所以我有如下代码: $defaultData = array('message' => 'Type your message here'); $form = Forms::createFormFactory()->createBuilder($defaultData) ->add('name', '
$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”与
消息“”应为字符串类型的参数,
Symfony\Component\Form\ResolvedFormTypeInterface或
Symfony\Component\Form\FormTypeInterface,数组在中给定
你知道我做错了什么吗?谢谢 您没有按照所述学习教程。希望知道您在第一个参数中创建的表单类型,而不是默认选项。在此上下文中,默认选项用于第二个参数。您可以在控制器API文档中看到差异 您应该在教程中使用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)
// ...
如果您正在学习本教程,为什么要使用Forms::createFormFactory->createBuilder$defaultData而不是$this->createFormBuilder$defaultData?我阅读本教程是为了了解这一点,正如我所说,我正在自定义增强组件。但是,如果您读取控制器,该方法将执行以下操作:$this->container->get'form.factory'->createBuilder'form',$data,$options,它基本上是调用表单工厂服务,我相信这将等同于Forms::createFormFactory,然后它调用createBuilder检查我的代码,这样我就看不出区别在哪里了。建议从这里开始:这里讨论独立组件。让示例开始工作,然后可能添加一些内容。传递给Symfony\Component\Form\Extension\Core\Type\FormType::setDefaultOptions的参数1必须是Symfony\Component\options Resolver\options Resolver\options Resolver的实例,Symfony\Component\options Resolver\options Resolver的实例,显然我已经尝试过了,而且它不起作用