0

我有一个实体,它有一列“inventoryLcoation_id”,它具有多对一的关系。出于某种原因,当我使用 createQueryBuilder() 时,它不会在我的 ajax 调用中返回该值,但它会返回其他所有内容:id、名称等。这不是 Symfony2 的问题,而是我缺乏知识的问题:)

这是我的查询生成器代码:

 $qb = $this
 ->createQueryBuilder('p')
 ->select('p.id', 'p.name')
 ->where('p.inventoryLocation = :inventoryId')
 ->andWhere('p.account = :account_id')
 ->setParameter('inventoryId', $value)
 ->setParameter('account_id', $account_id)
 ->orderBy('p.id', 'DESC');
 if($qb->getQuery()->getArrayResult()){
      return $qb->getQuery()->getArrayResult();
 }else{
      return false;
 }

我需要编写什么代码才能使其还包含inventoryLocation表中映射到列值“inventoryLocation_id”的值?

非常感谢您帮助我了解 Symfony2 的精彩世界!

4

1 回答 1

0

尝试加入:

$qb->join('p.inventoryLocation','i')

并在选择中指定两个实体

$qb->select('p','i')

它应该是这样的:

$qb = $this
 ->createQueryBuilder('p')
 ->select('p','i')
 ->join('p.inventoryLocation','i')
 ->where('p.inventoryLocation = :inventoryId') // or ->where('i = :inventoryId')
 ->andWhere('p.account = :account_id')
 ->setParameter('inventoryId', $value)
 ->setParameter('account_id', $account_id)
 ->orderBy('p.id', 'DESC');
于 2013-10-11T20:55:14.820 回答