Tengo las siguientes relaciones dentro de mis entidades doctrina:Doctrina 2: Ahorro de la entidad en relación compleja
FavoriteRecipe
/**
* @ManyToOne(targetEntity="User", inversedBy="favoriteRecipes")
*/
private $user;
/**
* @ManyToOne(targetEntity="Recipe", inversedBy="favoriteRecipes")
*/
private $recipe;
Receta
/**
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
*/
private $favoriteRecipes;
usuario
/**
* @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
*/
private $favoriteRecipes;
En una de mis controladores Tengo el siguiente código:
$favoriteRecipe = new \Entities\FavoriteRecipe();
$favoriteRecipe->setRecipe($recipe);
$favoriteRecipe->setUser($user);
$this->_em->persist($favoriteRecipe);
$this->_em->flush();
Pero esto produce una excepción con el siguiente mensaje:
Una nueva entidad se encuentra a través de una relación que era no configurado a las operaciones de persistencia en cascada: Entidades \ Usuario @ 00000000408bd010000000007cb1380e. Persista explícitamente la nueva entidad o configure las operaciones de persistencia en cascada en la relación .
¿Cómo puedo crear y guardar correctamente una entidad FavoriteRecipe
?
Para qué lado de la asociación ¿agrego la opción de cascada? ¿El lado dueño o el lado inverso? – moteutsch
Depende del comportamiento que desee, pero en su situación creo que es al revés. Yo diría que lo intenté, y mire lo que sucede en la base de datos. –
Y agregaría "y vuelve aquí para compartir tus hallazgos". La gente te ayudó, no te olvides de ayudar a la gente :) – Ninj