【发布时间】:2014-03-14 12:56:04
【问题描述】:
这里是菜鸟。我会说我可以看到曲线的顶峰,但我还有一段路要走。
我有一个引用类别表的实体 (tblxchangecategories):
这与引用类别层次表的实体 (tblxchangecategory_hier) 有关:
关系是自引用的。
有 6 个主要类别是父母,其余类别 (36) 都是孩子。
这就是我在实体文件 (tblxchangecategories) 中定义它们的关系的方式:
/**
* @OneToMany(targetEntity="TblXchangecategories", mappedBy="children")
**/
private $parent;
/**
* @ManyToOne(targetEntity"TblXchangecategories", inversedBy="parent")
* @JoinTable(name="tbl_xchangecategory_hier",
* joinColumns={@joinColumn(name="hier_parent", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="hier_child", referencedColumnName="id")}
*/
private $children;
在另一个实体文件(tblxchangecategory_hier)中:
/**
* @var \WorkoutExchange\WXCoreBundle\Entity\TblXchangecategories
*
* @ORM\OneToMany(targetEntity="WorkoutExchange\WXCoreBundle\Entity\TblXchangecategories")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="hier_parent", referencedColumnName="id")
* })
*/
private $hierParent;
/**
* @var \WorkoutExchange\WXCoreBundle\Entity\TblXchangecategories
*
* @ORM\ManyToOne(targetEntity="WorkoutExchange\WXCoreBundle\Entity\TblXchangecategories")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="hier_child", referencedColumnName="id")
* })
*/
private $hierChild;
使用以下代码,我可以检索扁平数组中的所有类别(无关系):
$categories = $em->getRepository('WorkoutExchangeWXCoreBundle:TblXchangecategories')->findAll();
我可以设置视图,所以没问题,它是从数据库中获取数据给我带来了麻烦。
我在几次搜索中都看到了对 ->getChildren() 函数的引用,但我的两个实体定义文件中都没有这个函数。
我想要的是填充所有实体,这样当我显示它们时,我可以使用父母作为标题,而父母下的孩子是这样的:
感谢您的帮助。
【问题讨论】:
标签: symfony doctrine-orm self-reference