我有一个表,它为每个用户名存储一棵树。我的实体如下所示:
/**
* Confsaves
* @Gedmo\Tree(type="nested")
* @ORM\Table(name="confsaves")
*@ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
*/
class Confsaves
{
/**
* @var string
*
* @ORM\Column(name="Name", type="string", length=200, nullable=true)
*/
private $name;
/**
* @var string
*
* @Gedmo\TreeRoot
* @ORM\Column(name="Username", type="string", length=50, nullable=true)
*/
private $username;
/**
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="Confsaves", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="CASCADE", nullable=true)
*/
private $parent;
/**
* @ORM\OneToMany(targetEntity="Confsaves", mappedBy="parent")
* @ORM\OrderBy({"lft" = "ASC"})
*/
private $children;
/**
* @var integer
*
* @Gedmo\TreeLeft
* @ORM\Column(name="lft", type="integer", nullable=true)
*/
private $lft;
/**
* @var integer
*
* @Gedmo\TreeRight
* @ORM\Column(name="rght", type="integer", nullable=true)
*/
private $rght;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
我想为每个用户构建一个不同的树。
在我的控制器中,我创建了这样的存储库:
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('MyBundle:Confsaves');
如何仅在连接的用户上设置存储库的范围?构建树功能需要级别吗?
我使用只有左、右和父参数的现有数据库。