Doctrine2无法在QueryBuilder查询中访问JoinColumn

时间:2014-08-19 10:21:44

标签: php symfony doctrine-orm

我有一些相当简单的实体,A是A,A有parent列注释

@ORM\JoinColumn(name="parentid", referencedColumnName="id", nullable=true)
@ORM\ManyToOne(targetEntity="A", inversedBy="children", cascade={"persist"})

这基本上是对另一个实体的引用。

当我尝试在像这样的查询中查询此实体A.parent时

$qb->select("A.parent")
// or
$qb->select("A.parentid")
// or
$qb->select("A.Parent")
$qb->leftJoin("A.parent", "parent")

我最终收到此错误:

  

实体....没有名为parent / parentid的字段或关联

1 个答案:

答案 0 :(得分:0)

如果定义是这样的

/**
* @ORM\JoinColumn(name="parentid", referencedColumnName="id", nullable=true)
* @ORM\ManyToOne(targetEntity="A", inversedBy="children", cascade={"persist"})
*/
private $parentField;

查询构建器应该是这样的

$qb
->select('a, p')
->from('AppBlogBundle:A', 'a')
->leftJoin('a.parentField','p');