2015-03-09 3 views
0

Я получаю вышеуказанную ошибку при попытке использовать тип поля сущности в форме.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

ответ

0

Похоже, что вы создали класс формы, но воссоздавать форму в контроллере, а не с помощью класса формы.

В моем контроллере я называю его: ->add('category', 'entity')

Вы должны либо использовать ту же class и property варианту, как вы делали в классе формы, или лучше использовать класс формы в вместо воссоздания формы.

$this->createForm(new ParentType(), $parent);

+0

Я использую следующую конструкцию: '$ форма = $ this-> createFormBuilder ($ актер) -> добавить ('категорию', 'сущности') -> getForm();' это работает другая форма. Однако он не работает с полем типа «entity». – Jayprakash

+0

Я отметил это как ответ, потому что он указал мне в правильном направлении. Я изменил свой код, чтобы использовать '$ form = $ this-> createForm (новый ParentType(), $ parent, array ('method' => 'GET')) ;, но была вторичная проблема с FormBuilderInterface, на который был дан ответ [здесь] (http://stackoverflow.com/questions/12359307/registrationformtypebuildform-not-compatible). – Jayprakash

Смежные вопросы