我有这些实体
class Centro {
/* ... */
/**
* @ORM\OneToMany(targetEntity=NivelesEscolares::class, mappedBy="centro", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $nivelesEscolares;
/* ... */
}
中心链接到具有NivelesEscolares实体的OneToMany关系。下面是语句
class NivelesEscolares
{
/*...*/
/**
* @ORM\ManyToOne(targetEntity=App\Entity\Centro::class, inversedBy="nivelesEscolares")
*/
private $centro;
}
当我删除一个中心时,学校级别应该被删除,但它变成了null。我已经尝试了orphanRemoval,但它仍然没有删除任何东西。也尝试使用onDelete = "CASCADE“,但它不会删除任何内容。我需要OneToMany关系方面的帮助。
发布于 2021-09-27 07:01:52
好吧,orphanRemoval和onDelete有一点不同,如下所示:
1. orphanRemoval="true"
中删除it.
2. onDelete="CASCADE"
在DATABASE
very powerful and fast
。(这是《教义官方教程》的引文…但是还没有看到更多的explaination)Centro
时删除NivelesEscolares
,只需使用onDelete
,而不是像这样使用orphanRemoval
: Centro
应该如下所示:
class Centro {
/* ... */
/**
* @ORM\OneToMany(targetEntity=NivelesEscolares::class, mappedBy="centro", cascade={"persist", "remove"})
*/
private $nivelesEscolares;
/* ... */
}
此外,还可以将onDelete
NivelesEscolares
与NivelesEscolares
结合使用,如下所示:
class NivelesEscolares
{
/*...*/
/**
* @ORM\ManyToOne(targetEntity=App\Entity\Centro::class, inversedBy="nivelesEscolares")
* @ORM\JoinColumn(onDelete="CASCADE")
*/
private $centro;
}
就像你说的那样,这将迫使教义取消“学校级别”,享受吧!
https://stackoverflow.com/questions/69338763
复制相似问题