2017-01-13 35 views
-1

我該如何處理這種情況。主義通過更多表關係獲取數據

我有表:Item, Item_Picture, Vendor

Item_Picture有關係Item (item_id)

Item有關係Vendor (vendor_id)

什麼是如何從Item_PictureVendor方式?

我知道如何getItemItem_Picture。 但是我能不能從Item_PicturegetVendor

例如,我能得到什麼,我從控制器這樣想:

$pictureRepository = $this->getContainer()->get('doctrine') 
          ->getRepository(ItemPicture::class); 
$picture = $pictureRepository->find(1); 
$vendor = $picture->getItem()->getVendor(); 

我感興趣的更清潔的方式吧?

+0

請在這裏閱讀:http://stackoverflow.com/help/how-to-ask並改善您的問題。 – Wilt

回答

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