0
我有一個連接查詢在我的「項」實體庫類:主義的QueryBuilder的getResult沒有返回嵌套數組
public function findByParentItem(parentItemCodes, excludedModules) {
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('i', 'p')
->from('Bundle:ItemParent', 'p')
->join($this->getClassName(), 'i', Join::WITH, 'i.itemCode = p.itemCode')
->where(
$qb->expr()->andX(
$qb->expr()->in('p.parentItem', ':parentItem'),
$qb->expr()->notIn('i.moduleId', ':excludedModules')
)
)
->setParameter('parentItem', $parentItemCodes)
->setParameter('excludedModules', $excludedModules);
return $qb->getQuery()->getResult();
}
項目和ParentItem不由聯想連接,因爲它可能指向另一個實體爲好。
我希望得到的結果是:
[
0 => [
0 => Item,
1 => ParentItem
],
1 => [
0 => Item,
1 => ParentItem
],
...
]
相反,我得到:
[
0 => Item,
1 => ParentItem,
2 => Item,
3 => ParentItem,
...
]
這是發生是因爲沒有實體的關聯?
編輯:更改->from('Bundle:ParentItem', 'p', 'p.itemCode')
給我:
[
'ItemCode1' => ParentItem,
0 => Item,
'ItemCode2' => ParentItem,
1 => Item,
...
]
如果我做的:
$qb->select('i', 'p.itemCode as itemCode')
我得到這個這是比較的行我想要的東西:
[
0 => [
0 => ParentItem,
'itemCode' => 'ItemCode1'
],
1 => [
0 => ParentItem,
'itemCode' => 'ItemCode2'
],
...
]
編輯:我的實體:
/**
* @ORM\Entity(repositoryClass="ItemRepository")
* @ORM\Table(name="item")
*/
class Item {
/**
* @ORM\Column(name="item_code", type="string", length=50)
* @ORM\Id
*/
protected $itemCode;
/**
* @ORM\Column(name="module_id", type="string", length=10, nullable=true)
*/
protected $moduleId;
// .. other properties
}
/**
* @ORM\Entity(repositoryClass="ItemParentRepository")
* @ORM\Table(name="item_parent")
*/
class ItemParent {
/**
* @ORM\Column(name="item_code", type="string", length=50)
* @ORM\Id
*/
protected $itemCode;
/**
* @ORM\Column(name="parent_item", type="string", length=50)
* @ORM\Id
*/
protected $parentItem;
}
嘗試用這種'由()'函數:' - 從>( '捆綁:itemParent所', 'P', 'p.itemCode')' – manix
它仍然給平數組,我編輯了我的問題。 – juhah
你應該發佈你的實體以及... –