小编LaR*_*lle的帖子

如何从ResultSetMapping获取关联数组?

我正在研究一个Symfony2项目(Doctrine),我想从ResultSetMapping对象中获取一个简单的关联数组.

这是我的要求:

$rsm = new ResultSetMapping;

//$rsm->addIndexByScalar('name');
$rsm->addScalarResult('name', 'name');
$rsm->addScalarResult('rate', 'rate');

return $this->_em->createNativeQuery(sprintf('
                SELECT DISTINCT t1.sold_drug as name, (COUNT(*)/(SELECT COUNT(*) FROM Transaction t WHERE t.sold_drug != ""))*100 as rate
                         FROM Transaction t1

                 WHERE t1.sold_drug != "" AND t1.prescribed_but_not_sold != "No"
                 GROUP BY name
                 ORDER BY rate DESC', $this->getFilterQuery()), $rsm)->getResult();
Run Code Online (Sandbox Code Playgroud)

所以我想得到一个关联数组,如:

array('nameA' => 10, 'nameB' => 2, ...);
Run Code Online (Sandbox Code Playgroud)

我试图添加ScalarResult/ScalarIndex但没有成功!

任何的想法 ?谢谢 !

doctrine associative-array entitymanager sqlresultsetmapping symfony

2
推荐指数
1
解决办法
3657
查看次数