我有一个Category
旨在代表论坛类别的实体。我使用StofDoctrineExtensionsBundle
它是为了使用它的Tree
注释,以便在类别中有层次结构。现在,我想用一个字符串来表示该层次结构,比如Category/Subcategory/Subsubcategory/Foo
. 如何使用 Doctrine 在一个独特的请求中获取所有层次结构?
// Category.php
use Doctrine\Common\Collections\ArrayCollection;
use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
/**
* @Gedmo\Tree(type="nested")
* @ORM\Table()
* @ORM\Entity(repositoryClass="PC\ForumBundle\Entity\Repository\CategoryRepository")
*/
class Category
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
private $id;
/**
* @ORM\Column(length=64)
*/
private $title;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description;
/**
* @Gedmo\Slug(fields={"title"})
* @ORM\Column(length=64, unique=true)
*/
private $slug;
/**
* @Gedmo\TreeLeft
* @ORM\Column(type="integer")
*/
private $lft;
/**
* @Gedmo\TreeRight
* @ORM\Column(type="integer")
*/
private $rgt;
/**
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $parent;
/**
* @Gedmo\TreeRoot
* @ORM\Column(type="integer", nullable=true)
*/
private $root;
/**
* @Gedmo\TreeLevel
* @ORM\Column(name="lvl", type="integer")
*/
private $level;
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
*/
private $children;
// ...