Wpis z mikrobloga

Mirki potrzebuję pomocy z PHP.
Robię kumplowi stronkę i używam #symfony2 Mam listę przewoźników i chciałbym filtrować zawartość listy. Zrobiłem formularz z filtrami. Po wysłaniu formularza zapisuję go w sesji, a następnie uzupełniam query buildera danymi z formularza. Zawartośc formularza przechowuję w sesji (nic lepszego nie wymyśliłem). Jednak, żeby filtry pobrać z sesji i dodać je do formularza muszę wywołać $this->getDoctrine()->getManager()->merge($encja_z_formularza). Wszystko działało jak trzeba, gdy miałem relacje OneToMany/ManyToOne. Jednak teraz doszedłem do takiego etapu, gdzie muszę filtrować wyniki mając relację ManyToMany. Tutaj nawet nie udało mi się dojść do etapu uzupełniania query buildera, ponieważ mam exception w kontrollerze wywołując merge() na encji z formularza.
Dałem w kontrolerze blok try... catch, żeby złapać zmienną, na której mam wyrzucowy wyjątek. Wyjątek mam taki:

CarrierController.php on line 99:
MappingException {#640
#message: "The class 'Doctrine\Common\Collections\ArrayCollection' was not found in the chain configured namespaces AppBundle\Entity, FOS\UserBundle\Model"
#code: 0
#file: "../vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php"
#line: 37
}

Zrobiłem gista: https://gist.github.com/miedzwin/fae1c934552bf0379c1d2a1dab83a18d
Exception mam w kontrolerze, linijka 37.

No i mam też drugie pytanie: jak w query builderze robić wyszukiwanie, gdy mam relację ManyToMany? Bo będę musiał też szukać według regionów i podejrzewam, że będę miał z tym sporo problemów…

#php #webdev #webdevhelp
  • 1
  • Odpowiedz
@mariecziek próbujesz zrobić merge ArrayCollection - obiekt nie posiada informacji o mapowaniu. powinno być PersistentCollection z tego co się nie mylę. musisz to jakoś inaczej ogarnąć
  • Odpowiedz