我在User表和Role表之间有一些交叉表。我想在数据库级别创建级联删除。我有下一个注释:
/**
* @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?
答案 0 :(得分: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;