通过Doctrine2中的反面更新ManyToMany关系

时间:2012-07-08 18:59:44

标签: symfony doctrine-orm many-to-many

我的食谱实体:

/**
 * @ORM\ManyToMany(targetEntity="Category", inversedBy="recipes")
 */
private $categories;

我的类别实体:

/**
 * @ORM\ManyToMany(targetEntity="Recipe", inversedBy="categories")
 * @ORM\JoinTable(name="recipe_category")
 */
private $recipes;

好的,这是http://www.youtube.com/watch?v=kPrgoe3Jrjw&feature=related

有了这两个拥有的一方,一切正常。但是cli给出了错误:'名为recipe_category的表已经存在。有没有人知道最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

您必须更新其他实体,例如:

class Recipe
{
    public function addCategory($cat)
    {
        $car->addRecipe($this);
        $this->categories->add($cat);

        return $this;
    }

    public function removeCategory($cat)
    {
        $cat->removeRecipe($this);
        $this->categories->removeElement($cat);

        return $this;
    }
}