原则跨更多表关系获取数据



我该如何处理这种情况。

我有表格:Item, Item_Picture, Vendor

Item_PictureItem (item_id)有关

ItemVendor (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();

相关内容

  • 没有找到相关文章

最新更新