Wpis z mikrobloga

#php #doctrine #symfony2

Mam takie cos, wszystkko dziala fajnie formularz z zagniezdzonym formularzem, po submit ladnie pokazuje obiekt Foo z dwoma przypisanymi Collections bestbars i worstbars. Problem pojawia sie przy probie persist, blad jest taki ze kolekcje sa wstawiane do bazy bez id rodzica.

Podejrzewam ze problem tkwi w tym ze ManyToOne nie ma inversedBy (no bo nie wiem co tam mialoby byc).

Da sie jakos fajnie to rozwiazac?

class Foo
{
/**
* @ORM\OneToMany(targetEntity="Bar", mappedBy="foo", cascade={"persist"})
**/
protected $best_bars;

/**
* @ORM\OneToMany(targetEntity="Bar", mappedBy="foo", cascade={"persist"})
**/
protected $worst_bars;
}

class Bar
{

/**
* @ORM\ManyToOne(targetEntity="Foo")
* @ORM\JoinColumn(nullable=false)
* @Assert\NotBlank()
**/
protected $foo;
}
  • 8
  • Odpowiedz
@kmicolo: Zmylilo mnie to ze z Symfony po POST samo tworzy rekacje, tylko ID brakuje. Myslalem ze Doctrine samo zrobi resolve tego ID (skoro jest relacja logiczna) przy transakcji zapisywania wszystkiego do bazy. Widocznie sie mylilem tylko nie wiem po co wbudowane zagniezdzanie formularzy, tworzenei relacji jak i tak potem trzeba recznie id ustawiac.
  • Odpowiedz