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…
@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ąć
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