我有以下查询:
$query = $em->createQueryBuilder()->select('p')
->from("ShopMainBundle:ShopPicture", 'p')
->innerJoin('p.shop', 'shop')
;
我想从每个独特的商店获取图片。我该怎么做呢?换句话说,我想指定每个p应该属于X。
答案 0 :(得分:0)
不确定我是否理解正确,但以下情况应该有效:
$query = $em->createQueryBuilder()->select('shop', 'p')
->from("ShopMainBundle:Shop", 'shop')
->innerJoin('s.pictures', 'p')
->getQuery()
;
foreach ($query->getResult() as $shop) {
foreach ($shop->getPictures() as $picture) {
...
}
}
修改强>
如果您想为每家商店购买一张照片,可以在商店进行分组:
$query = $em->createQueryBuilder()->select('p')
->from("ShopMainBundle:ShopPicture", 'p')
->groupBy('p.shop')
;
然而,由于Doctrine不支持RAND()
,您无法获得一张随机图片。有关详细信息,请参阅How to select randomly with doctrine