Doctrine 返回不同数组中的连接查询
Doctrine returning join query in different arrays
$query = $this->createQueryBuilder('p');
$query
->select('s', 'p')
->innerJoin(
'test\Entity\ProductQuantity',
's',
\Doctrine\ORM\Query\Expr\Join::WITH,
'p.sku = s.sku'
)
->orderBy('p.productId', 'DESC');
return $query->getQuery()->getResult();
这个查询必须 return 2 个表的结果,我得到的是:
result = array(
[0] => 'table1',
[1]=> 'table2',
[2] => 'table1',
[3]=> 'table2',
)
为什么我在 2 个数组中得到 2 个表?这是连接查询,它必须在 1 个数组中,如何合并 1 个数组中的连接查询结果并得到:
result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)
解决方案添加到 select 需要的字段,然后结果是 1 个数组
$query = $this->createQueryBuilder('p');
$query
->select('p.sku', 's.quantity', 'p.priceAmount')
->innerJoin(
'LeosEbayGateway\Entity\ProductQuantity',
's',
\Doctrine\ORM\Query\Expr\Join::WITH,
'p.sku = s.sku'
)
->orderBy('p.productId', 'DESC');
return $query->getQuery()->getResult();
结果:
result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)
您可以使用数组形式获取结果:
$query->getQuery()->getScalarResult();
$query = $this->createQueryBuilder('p');
$query
->select('s', 'p')
->innerJoin(
'test\Entity\ProductQuantity',
's',
\Doctrine\ORM\Query\Expr\Join::WITH,
'p.sku = s.sku'
)
->orderBy('p.productId', 'DESC');
return $query->getQuery()->getResult();
这个查询必须 return 2 个表的结果,我得到的是:
result = array(
[0] => 'table1',
[1]=> 'table2',
[2] => 'table1',
[3]=> 'table2',
)
为什么我在 2 个数组中得到 2 个表?这是连接查询,它必须在 1 个数组中,如何合并 1 个数组中的连接查询结果并得到:
result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)
解决方案添加到 select 需要的字段,然后结果是 1 个数组
$query = $this->createQueryBuilder('p');
$query
->select('p.sku', 's.quantity', 'p.priceAmount')
->innerJoin(
'LeosEbayGateway\Entity\ProductQuantity',
's',
\Doctrine\ORM\Query\Expr\Join::WITH,
'p.sku = s.sku'
)
->orderBy('p.productId', 'DESC');
return $query->getQuery()->getResult();
结果:
result = array(
[0] => 'table1table2',
[1] => 'table1table2',
)
您可以使用数组形式获取结果:
$query->getQuery()->getScalarResult();