Mam następujące relacje w moim podmiotów naukąDoctrine 2: Zapisywanie Podmiot złożony związek
FavoriteRecipe
/**
* @ManyToOne(targetEntity="User", inversedBy="favoriteRecipes")
*/
private $user;
/**
* @ManyToOne(targetEntity="Recipe", inversedBy="favoriteRecipes")
*/
private $recipe;
Przepis
/**
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
*/
private $favoriteRecipes;
użytkownika
/**
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
*/
private $favoriteRecipes;
W jednym z moich kontrolerów Mam następujący kod:
$favoriteRecipe = new \Entities\FavoriteRecipe();
$favoriteRecipe->setRecipe($recipe);
$favoriteRecipe->setUser($user);
$this->_em->persist($favoriteRecipe);
$this->_em->flush();
Ale to zgłasza wyjątek z następującym komunikatem:
Nowa jednostka została znaleziona przez związek, który był nie skonfigurowano do kaskadowych operacji utrwalania: Entities \ User @ 00000000408bd010000000007cb1380e. Jawnie zachowaj nowy obiekt lub skonfiguruj kaskadowe operacje utrwalania na relacji .
Jak poprawnie utworzyć i zapisać encję FavoriteRecipe
?
Aby której stronie czy dodaję opcję kaskady? Strona posiadania lub strona odwrotna? – moteutsch
To zależy od zachowania, które chcesz, ale w twojej sytuacji myślę, że odwrotna strona. Powiedziałbym, spróbuj i zobacz, co dzieje się w bazie danych. –
I dodałbym "i wróć tutaj, aby podzielić się twoimi odkryciami". Ludzie ci pomogli, nie zapomnij pomóc ludziom :) – Ninj