2013-10-11 61 views
0

我有一個具有多對一關係的列「inventoryLcoation_id」的實體。出於某種原因,當我使用createQueryBuilder()時,它並沒有在我的ajax調用中返回該值,但它返回了其他所有內容:id,name等等。這不是Symfony2的問題,它是我缺乏知識的問題:)Symfony2查詢生成器不返回多對一

這裏是我的查詢生成器代碼:

$qb = $this 
->createQueryBuilder('p') 
->select('p.id', 'p.name') 
->where('p.inventoryLocation = :inventoryId') 
->andWhere('p.account = :account_id') 
->setParameter('inventoryId', $value) 
->setParameter('account_id', $account_id) 
->orderBy('p.id', 'DESC'); 
if($qb->getQuery()->getArrayResult()){ 
     return $qb->getQuery()->getArrayResult(); 
}else{ 
     return false; 
} 

什麼我需要的代碼把它也包括來自inventoryLocation表被映射到列值「inventoryLocation_id」的價值?

非常感謝您的幫助,讓我對Symfony2的世界充滿了啓發!

回答

0

嘗試加入:

$qb->join('p.inventoryLocation','i') 

,並在選擇especify兩個實體

$qb->select('p','i') 

它應該是這樣的:

$qb = $this 
->createQueryBuilder('p') 
->select('p','i') 
->join('p.inventoryLocation','i') 
->where('p.inventoryLocation = :inventoryId') // or ->where('i = :inventoryId') 
->andWhere('p.account = :account_id') 
->setParameter('inventoryId', $value) 
->setParameter('account_id', $account_id) 
->orderBy('p.id', 'DESC'); 
相關問題