我正在尝试使用Symfonyand构建一个非常基本的 CMS Doctrine。我有实体模拟我的网站结构,如下所示:
实体:页面
/**
* @ORM\Entity(repositoryClass="App\Repository\ContentTree\PageRepository")
*/
class Page extends SortableBase
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @ORM\OrderBy({"sort_order" = "ASC"})
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Website", inversedBy="pages", cascade={"all"}, fetch="EAGER")
*/
private $website;
/**
* Owning side of relation
* @ORM\OneToMany(targetEntity="Section", mappedBy="page", fetch="EAGER")
*/
private $sections;
public function __construct()
{
...
实体:部分
/**
* @ORM\Entity(repositoryClass="App\Repository\ContentTree\SectionRepository")
*/
class Section extends SortableBase
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Page", inversedBy="sections", cascade={"all"}, fetch="EAGER")
*/
private $page;
/**
* Owning side of relation
* @ORM\OneToMany(targetEntity="Entry", mappedBy="section", fetch="EAGER")
*/
private $entries;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\SectionTemplating\SectionType", fetch="EAGER")
*/
private $sectionType;
public function __construct()
{
实体:条目
/**
* @ORM\Entity(repositoryClass="App\Repository\ContentTree\EntryRepository")
*/
class Entry extends SortableBase
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="Section", inversedBy="entries", cascade={"all"}, fetch="EAGER")
*/
private $section;
所以最后一个Page可以拥有Sections哪个可以拥有Entries等等。现在,根据我从文档中收集到的内容,我假设通过我的设置方式,cascades我可以去使用EntityManager删除任何实体的实例(比如说Section),它会自动删除该实例以及所有包含的实例Entries.
扬帆大鱼
不负相思意