Wpis z mikrobloga

#php #symfony #symfony2
Mirki, mam problem. Posiadam dwie encje Map i Competitions, encje to połączone są trzecią encją. Dodatkowo stworzyłem formularz który automatycznie pobiera dane o mapach (formularz ma dodawać nowy wpis do tablicy competitions). Niestety przy próbie zapisu dostaje taki błąd:

Expected value of type "Doctrine\Common\Collections\Collection|array" for association field "AppBundle\Entity\Competition#$maps", got "AppBundle\Entity\Map" instead.
Kod: http://pastebin.com/SbMieAg1

Dzięki za pomoc i wskazówki jak to ugryźć.
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MacFlays: a co profiler mówi o formie? Wychodzi na to, że to multiple nie działa za dobrze i zamiast robić kolekcje map to robi jeden obiekt.

EDIT:
Już wiem. Zmień typ encji na MapAssociation Niestety pewnie będziesz do tego potrzebował embedded forma. Jeżeli chcesz to zostawić w obecnej postaci to zrób między mapami a konkurencjami many-to-many i niech doctrine się zajmię encją asocjacyjną.
  • Odpowiedz
@MacFlays: many-to-many opłaca się używać wtedy kiedy nie chcesz optymalizować asocjacji, czyli nie będziesz tam gromadził żadnych informacji potrzebnych do pobierania łączonych obiektów. Twoje rozwiązanie jest dobre w przypadku kiedy encja asocjująca będzie posiadała jakieś meta dane i będą one używane w zapytaniach. (najprostszy przypadek to pole typu aktywne, data wygaśnięcia itp)
  • Odpowiedz
@czolnowski: Mam jeszcze jedno pytanie. Planuję mieć encję bronie, przedmioty itp. Część pól będzie wspólna, lepiej to rozbić na poszczególne niezależne encje czy stworzyć jedną abstrakcyjną klasę po której będą dziedziczyć poszczególne encje?
  • Odpowiedz
@czolnowski: Ja dopiero przerzuciłem się z niskopoziomowego programowania więc na razie nie mam swojej wizji takich abstrakcyjnych bytów :), dlatego na razie szukam jakiś ogólnie przyjętych schematów, sposobów. Dzięki za pomoc, na pewno znajdę swój sposób na trzymanie tego, najwyżej zostanę okrzyczany :)
  • Odpowiedz