Php 原则2:如何删除多对多关联中的关系和实体
我有两个实体Php 原则2:如何删除多对多关联中的关系和实体,php,mysql,orm,doctrine-orm,Php,Mysql,Orm,Doctrine Orm,我有两个实体Category和Image,一个类别可以有很多图像,因此基本上是一对多关系,但是Image也可以从其他实体引用。这就是为什么我要通过mm表使用unique=true约束执行多对多操作 所以我的结构是这样的: category -- id images -- id category_images -- category_id -- image_id 现在,我只想通过以下操作从类别中删除图像: $category->images = new ArrayCollection(
Category
和Image
,一个类别可以有很多图像,因此基本上是一对多关系,但是Image
也可以从其他实体引用。这就是为什么我要通过mm表使用unique=true约束执行多对多操作
所以我的结构是这样的:
category
-- id
images
-- id
category_images
-- category_id
-- image_id
现在,我只想通过以下操作从类别中删除图像:
$category->images = new ArrayCollection();
或
这里的问题是,这只会删除连接,例如mm表中的记录(category_images
),这是正确的,但我可能需要一个注释,在删除mm记录时,它也会删除images
表中的相关记录
我知道这有点偏离mm的想法,但我没有一个图像被两个实体引用的情况,所以它应该适合我
最后一个想法是能够将图像附加到不同的实体,并提供一种简单的“自动”删除它们的方法
有什么想法吗?如果可以将表设置为使用Engine=InnoDB,则可以使用外键约束在删除父表中的行时自动删除子表中的行。请参阅上的详细信息
ON DELETE CASCADE
在
ON DELETE CASCADE