我有一个实体,其列“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令人敬畏的世界的理解!
答案 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');