我该如何处理这种情况。
我有桌子:Item, Item_Picture, Vendor
Item_Picture
与Item (item_id)
Item
与Vendor (vendor_id)
如何从Vendor
获取Item_Picture
?
我知道如何getItem
来自Item_Picture
。
但我可以getVendor
以某种方式来自Item_Picture
吗?
例如,我可以从Controller得到我想要的东西:
$pictureRepository = $this->getContainer()->get('doctrine')
->getRepository(ItemPicture::class);
$picture = $pictureRepository->find(1);
$vendor = $picture->getItem()->getVendor();
我对更干净的方式感兴趣?
答案 0 :(得分:0)
我更喜欢查询构建器帮助构建这样的查询的方式,因为它更接近真正的SQL查询并避免加载所有存储库。
$qb = $this->getContainer()->get('doctrine')->createQueryBuilder();
$qb->select(['c.venderName']);
$qb->from(ItemPicture::class, 'a');
$qb->leftJoin('a.item', 'b');
$qb->leftJoin('b.vendor', 'c');
$qb->where($qb->expr()->eq('a.id', ':id'));
$qb->setParameter('id', 1);
$vendor = $qb->getQuery()->getResult();