在Doctrine(Symfony3)中我试图通过数组结果从我的访问记录中获取最小数据:
public function findByNonDeparted($user)
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb
->select('v.id,v.status,v.arrivalStatus,v.personId,v.arrivalDate,v.departureDate')
->from('MyAccommodationBundle:Visit', 'v')
->leftJoin('v.accommodationPeriods','ap')
->leftJoin('ap.roomType','r')
->leftJoin('r.stayArea','s');
return $qb->getQuery()->getArrayResult();
}
我如何在select语句中包含“住宿期”?
我尝试了各种各样的事情:
SELECT('v.id, v.status, v.arrivalStatus, v.personId, v.arrivalDate, v.departureDate, ap')
这会出现以下错误:
如果不选择至少一个根实体别名,则无法通过标识变量选择实体。
在select语句中添加'v'将解决这个问题,但它将返回'v'的所有值,而不仅仅是我在select-statement中指定的值
所以我试过了:
SELECT('v.id, v.status, v.arrivalStatus, v.personId, v.arrivalDate, v.departureDate, v.accommodationPeriods')
这会出现以下错误:
必须是StateFieldPathExpression。
然后我尝试了:
SELECT('v.id, v.status, v.arrivalStatus, v.personId, v.arrivalDate, v.departureDate, IDENTITY(v.accommodationPeriods)')
然后出现新错误:
必须是SingleValuedAssociationField。