Php 通过更多的表关系获取数据
我如何处理这种情况 我有表格:Php 通过更多的表关系获取数据,php,doctrine-orm,Php,Doctrine Orm,我如何处理这种情况 我有表格:Item,Item\u图片,供应商 Item\u图片与Item(Item\u id) 项目与供应商(供应商id) 如何从商品图片获取供应商 我知道如何从Item\u图片获取Item。 但是我也可以从商品图片获取供应商吗 例如,我可以像这样从控制器获得我想要的: $pictureRepository = $this->getContainer()->get('doctrine') ->getRepo
Item,Item\u图片,供应商
Item\u图片
与Item(Item\u id)
项目
与供应商(供应商id)
如何从商品图片
获取供应商
我知道如何从Item\u图片获取Item
。
但是我也可以从商品图片获取供应商吗
例如,我可以像这样从控制器获得我想要的:
$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();
请阅读这里:并改进你的问题。