Я получаю вышеуказанную ошибку при попытке использовать тип поля сущности в форме.MissingOptionsException: Отсутствует обязательная опция «класс»
Я использую 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
Любая помощь будет очень высоко ценится.
Jay
Я использую следующую конструкцию: '$ форма = $ this-> createFormBuilder ($ актер) -> добавить ('категорию', 'сущности') -> getForm();' это работает другая форма. Однако он не работает с полем типа «entity». – Jayprakash
Я отметил это как ответ, потому что он указал мне в правильном направлении. Я изменил свой код, чтобы использовать '$ form = $ this-> createForm (новый ParentType(), $ parent, array ('method' => 'GET')) ;, но была вторичная проблема с FormBuilderInterface, на который был дан ответ [здесь] (http://stackoverflow.com/questions/12359307/registrationformtypebuildform-not-compatible). – Jayprakash