繁体   English   中英

使用ON DELETE CASCADE在Symfony 2和Doctrine 2中创建架构

[英]Create schema in Symfony 2 and Doctrine 2 with ON DELETE CASCADE

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

/**
 * @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?

您应该尝试一下,不要忘记在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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM