Problem rozwiązany*

*w inversed by i mapped by dałem złe wartości (literówki)



Mam dwie klasy w Entity

FormDefinition oraz FormFieldDefinition.

Każdy FormDefinition "posiada" kilka FormFieldDefinition's

FormDefiniton, to formularz. A FormFieldDefinition to pole (input/textarea/select itp) które do FormDefinition należy.


W kontrolerze mam :

  1. $formDefinition = $this->getDoctrine()->getRepository('AdmFormBundle:FormDefinition')
  2. ->find($id);
  3. if(empty($formDefinition))
  4. {
  5. throw $this->createNotFoundException('Formularz o podanym ID nie istnieje');
  6. }
  7.  
  8. $formFieldDefinitions = $formDefinition->getFormFieldDefinitions();
  9. echo get_class($formFieldDefinitions);


Co zwraca mi Doctrine\ORM\PersistentCollection. Czemu nie ArrayCollection ? Gdzie może być błąd i jak go naprawić ?


W Entity/FormDefinition mam :

  1.  
  2. public function __construct()
  3. {
  4. $this->formFieldDefinitions = new ArrayCollection();
  5. }
  6. (...)
  7.  
  8. /**
  9.   * Add formFieldDefinitions
  10.   *
  11.   * @param Adm\FormBundle\Entity\FormFieldDefinition $formFieldDefinitions
  12.   */
  13. public function addFormFieldDefinition(\Adm\FormBundle\Entity\FormFieldDefinition $formFieldDefinitions)
  14. {
  15. $this->formFieldDefinitions[] = $formFieldDefinitions;
  16. }
  17.  
  18. /**
  19.   * Get formFieldDefinitions
  20.   *
  21.   * @return Doctrine\Common\Collections\Collection
  22.   */
  23. public function getFormFieldDefinitions()
  24. {
  25. return $this->formFieldDefinitions;
  26. }



Gdy używam metody toArray() dostaje błąd :

Kod
Notice: Undefined index: FormDefinition in C:\xampp\htdocs\symfonyproject\vendor\doctrine\lib\Doctrine\ORM\Persisters\BasicEntityPersister.php line 1280