0

我在用户表和角色表之间有一些交叉表。我想在数据库级别创建级联删除。我有下一个注释:

/**
 * @ORM\ManyToMany(targetEntity="Role")
 * @ORM\JoinTable(name="user_x_role",
 *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
 * )
 * @var ArrayCollection $roles
 */
protected $roles;

但外键有 ondelete=restrict 和 onupdate=restrict 之后:

doctrine:schema:update --force

如何将这些值更改为 CASCADE?

4

1 回答 1

1

你应该试试这个,不要忘记修改 ORM 级别的级联。

/**
 * @ORM\ManyToMany(targetEntity="Role", cascade={"persist","remove"})
 * @ORM\JoinTable(name="user_x_role",
 *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id", onDelete="CASCADE")},
 * )
 * @var ArrayCollection $roles
 */
protected $roles;
于 2012-08-21T10:03:33.107 回答