Symfony2查询生成器不返回多个值

时间:2013-10-11 19:19:20

标签: php ajax symfony doctrine-orm query-builder

我有一个实体,其列“inventoryLcoation_id”具有多对一关系。出于某种原因,当我使用createQueryBuilder()时,它不会在我的ajax调用中返回该值,但它返回其他所有内容:id,name等等。这不是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令人敬畏的世界的理解!

1 个答案:

答案 0 :(得分:0)

尝试加入:

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

并在select中指定两个实体

$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');