我该如何处理这种情况。
我有表格:Item, Item_Picture, Vendor
Item_Picture
与Item (item_id)
有关
Item
与Vendor (vendor_id)
有关
从Item_Picture
获得Vendor
的方法是什么?
我知道如何从Item_Picture
getItem
.但是我也能从Item_Picture
那里getVendor
吗?
例如,我可以像这样从控制器中获取我想要的东西:
$pictureRepository = $this->getContainer()->get('doctrine')
->getRepository(ItemPicture::class);
$picture = $pictureRepository->find(1);
$vendor = $picture->getItem()->getVendor();
也许我对更清洁的方式感兴趣?
我更喜欢查询生成器帮助构建此类查询的方式,因为它更接近真正的 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();