使用 Native SQL 的 Doctrine 查询总是返回空数组
Posted
技术标签:
【中文标题】使用 Native SQL 的 Doctrine 查询总是返回空数组【英文标题】:Doctrine query using Native SQL always returning empty array 【发布时间】:2018-02-16 15:08:51 【问题描述】:我使用运行某些查询的方法创建了一个服务,我想使用学说 Native SQL,但无论我进行哪个查询,它总是返回一个空数组。有什么我遗漏的吗?
来自服务 MonthVacancySchedule 的方法:
public function getTotalVacanciesByUnits()
$rsm = new ResultSetMapping();
$sql = 'SELECT nome_procedimento FROM programacao';
$query = $this->emi->createNativeQuery($sql, $rsm);
$units = $query->getResult();
return $units;
我使用该服务的控制器:
/**
* @Route("/units", name="units")
*/
public function showTotalVacanciesByUnits( MonthVacancySchedule $mvs )
$units = $mvs->getTotalVacanciesByUnits();
# Always return empty array.
var_dump($units);
return $units;
【问题讨论】:
【参考方案1】:那是因为你向 Doctrine 请求空数组。
在rsm
对象中描述您需要的字段。例如
public function getTotalVacanciesByUnits()
$rsm = new ResultSetMapping();
$rsm->addScalarResult('nome_procedimento', 'nome_procedimento');
$sql = 'SELECT nome_procedimento FROM programacao';
$query = $this->emi->createNativeQuery($sql, $rsm);
$units = $query->getResult();
return $units;
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/native-sql.html#scalar-results
【讨论】:
以上是关于使用 Native SQL 的 Doctrine 查询总是返回空数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Symfony2,学说 2 中使用 @SqlResultSetMapping?
MS SQL CONCAT 与“+”查询的区别(使用 Doctrine 2)