一天中的好时光。
请告诉我如何在模板中显示对象数组中按级别分类的树(学说)
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\OneToMany(targetEntity="Application\Entity\Category", mappedBy="parent", cascade={"remove"})
*/
private $children;
/**
* @var \Application\Entity\Category
*
* @ORM\ManyToOne(targetEntity="Application\Entity\Category", inversedBy="children")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="parent", referencedColumnName="id", nullable=true)
* })
*/
private $parent;
表中的一切都很好:
id parent name
1 null Категория 1
2 null Категория 2
3 1 ПодКатегория 3 к 1
4 2 ПодКатегория 4 к 2
如果要对每条记录中的 foreach'em 进行排序 $category->getParent == null。(可能是因为这不仅仅是一个字段,而是指向另一条记录的链接)如果以数组的形式进行选择,那么 Parent 字段将完全不存在。
Zend Framework 3 教义 2 PosrgreSQL
我突然意识到 Parent 字段不仅仅是父类别的 id,通过虚拟字段 Сchildren 你可以获得子类别作为回报。这是一个巨大的优势,因为这里甚至不需要递归。
这是解决方案:
只有数据库中的查询数量在增加((
在此解决方案中,只有 1 个查询到数据库