我有两个表:parent
和child
。
父列包含名为child_id的字段。
Child不包含有关父级的信息。
一方父母只能有一个或少于一个孩子。我需要在一个查询中选择父信息和子信息。这可以通过联接来完成,例如SELECT * FROM parents p
LEFT JOIN child c ON p.child_id = c.id
。尽管如此,父和子都包含几个同名的字段。但我想做的是让孩子像一个对象。例如,SELECT *, (SELECT * FROM child WHERE id = parent.id) AS child from parent
成为对象父级,其属性为parent-> name,parent-> age,parent-> child,parent-> child-> name,parent-> child->高度等。使用Doctrine可以实现这一目标吗?如果是,怎么样?
答案 0 :(得分:0)
这取决于您为父实体和子实体声明的关联。如果设置正确,您可以获得父对象,通过父对象,您可以通过$ parentObj-> getChild()获取您的孩子。您应该在父实体中拥有@OneToOne或@ManyToOne关联,以便工作。