Wpis z mikrobloga

#symfony2

Dobra Mirki wołam o pomoc!

Mam entityType działa fajnie, zmieniam na multiple => true i przestaje działać! Szukałem rozwiązania w internecie ale nie ma, więc sprawa musi być naprawdę banalna. Kiedy wrzucam do bazy danych czy do sesji, to zamiast ładnej tablicy, wyskakuje mi takie coś
Doctrine\Common\Collections\ArrayCollection Object ( [elements:Doctrine\Common\Collections\ArrayCollection:private] => Array ( [0] => MovieBundle\Entity\Emotions Object ( [id:MovieBundle\Entity\Emotions:private] => 1 ) ) )

Jakiś obiekt obiekcie tablica... jestem oburzony ( ͡° ʖ̯ ͡°)
Oczywiście EntityType z multiple => false działa.

Powiedzmy, że mamy punkt wyjścia
Tak wyglądają metody Entity do której zapisuję

public function setFeelings($feelings) {
$this->feelings= $feelings;
return $this;
}

public function getFeelings() {
return $this->feelings;
}
ale próbowałem wszystkiego, z ArrayCollection i wtedy do obiektu dodaje na początku kolejne ArrayCollection!
Czy ktoś się z tym zetknął coś podobnego?
  • 2
@pierniki_mojej_babci: po pierwsze jeśli chcesz ta mieć multiple = true to metoda powinna sie nazywać addFeeling($feeling), jeśli chcesz zrobić setFeelings (nie wiem po co) to musisz w środku zrobić foreacha i na każdym elemencie addFeeling. ArrayCollection to domyślny obiekt jaki tam siedzi i nie walcz z tym, po prostu tak ma być.
Problemów może być kilka, np zła relacja w entity, nie poprawne mapowanie, zkaszaniony form type itd
panie poczytaj o doctrine, doctrine zawsze przy kolekcji obiektów wrzuca je do ArrayCollection. Jak masz encję, to MUSISZ relacje "do-wielu" trzymać jako ArrayCollection.

http://symfony.com/doc/current/cookbook/form/form_collections.html
http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/best-practices.html#initialize-collections-in-the-constructor

Jeżeli z jakiegoś powodu gdzieś potrzebujesz mieć jednak array (ale poza encją, czy formem 'entity') to masz tam metodę toArray().

http://symfony.com/doc/2.8/reference/forms/types/entity.html#multiple

If you are working with a collection of Doctrine entities, it will be helpful to read the documentation for the CollectionType Field as well.