信条2:在复杂关系中拯救实体


Doctrine 2: Saving Entity in Complex Relationship

在我的学说实体中有以下关系:

FavoriteRecipe

/**
 * @ManyToOne(targetEntity="User", inversedBy="favoriteRecipes")
 */
private $user;
/**
 * @ManyToOne(targetEntity="Recipe", inversedBy="favoriteRecipes")
 */
private $recipe;
菜谱

/**
 * @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
 */
private $favoriteRecipes;
用户

/**
 * @OneToMany(targetEntity="FavoriteRecipe", mappedBy="user")
 */
private $favoriteRecipes;

在我的控制器之一,我有以下代码:

$favoriteRecipe = new 'Entities'FavoriteRecipe();
$favoriteRecipe->setRecipe($recipe);
$favoriteRecipe->setUser($user);
$this->_em->persist($favoriteRecipe);
$this->_em->flush();

但是这会抛出一个带有以下消息的异常:

通过未配置的关系找到一个新实体级联持久化操作:实体' User@00000000408bd010000000007cb1380e。显式地持久化的上配置级联持久化操作关系。

如何正确创建和保存FavoriteRecipe实体?

是否为所有关系实体设置了级联选项?这可以通过设置cascade属性来实现,例如:cascade={" persistent ", "remove"}

也许这个页面:https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/working-with-associations.html