Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 原则2:如何删除多对多关联中的关系和实体_Php_Mysql_Orm_Doctrine Orm - Fatal编程技术网

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