尝试在表单中使用实体字段类型时出现上述错误。
我使用的是Symfony 2.6.0。
我的班级有一个类别字段,定义为:
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="parent")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
类别类定义为:
/**
* @ORM\OneToMany(targetEntity="Parent", mappedBy="category")
*/
protected $parents;
我的表单类型定义了类别:
->add('category', 'entity', array(
'class' => 'AppBundle:Category',
'property' => 'name'
在我的控制器中,我用它来调用它:
->add('category', 'entity')
堆栈跟踪如下:
Symfony\Component\OptionsResolver\Exception\MissingOptionsException: The required option "class" is missing.
at n/a
in \project\vendor\symfony\symfony\src\Symfony\Component\OptionsResolver\OptionsResolver.php line 757
at Symfony\Component\OptionsResolver\OptionsResolver->resolve(array())
in \project\vendor\symfony\symfony\src\Symfony\Component\Form\ResolvedFormType.php line 109
at Symfony\Component\Form\ResolvedFormType->createBuilder(object(FormFactory), 'category', array())
in \project\vendor\symfony\symfony\src\Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy.php line 82
at Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->createBuilder(object(FormFactory), 'category', array())
in \project\vendor\symfony\symfony\src\Symfony\Component\Form\FormFactory.php line 87
at Symfony\Component\Form\FormFactory->createNamedBuilder('category', 'entity', null, array())
in \project\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php line 106
at Symfony\Component\Form\FormBuilder->create('category', 'entity', array())
in \project\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php line 268
at Symfony\Component\Form\FormBuilder->resolveChildren()
in \project\vendor\symfony\symfony\src\Symfony\Component\Form\FormBuilder.php line 216
at Symfony\Component\Form\FormBuilder->getForm()
in \project\src\AppBundle\Controller\TheController.php line 78
at AppBundle\Controller\TheController->editAction('30', object(Request))
in line
at call_user_func_array(array(object(TheController), 'editAction'), array('30', object(Request)))
in \project\app\bootstrap.php.cache line 3008
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
in \project\app\bootstrap.php.cache line 2970
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
in \project\app\bootstrap.php.cache line 3119
at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
in \project\app\bootstrap.php.cache line 2364
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
in \project\web\app_dev.php line 28
非常感谢任何帮助。
杰
答案 0 :(得分:0)
看起来您已经创建了一个表单类,但是在控制器中重新创建表单而不是使用表单类。
在我的控制器中,我称之为:
->add('category', 'entity')
您应该使用与表单类相同的class
和property
选项,或者更好,使用控制器中的表单类而不是重新创建表单。
$this->createForm(new ParentType(), $parent);