【问题标题】:Doctrine query using Native SQL always returning empty array使用 Native SQL 的 Doctrine 查询总是返回空数组
【发布时间】: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;
  }

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2022-11-22
      • 2022-11-22
      • 1970-01-01
      • 2019-12-02
      • 2014-07-31
      • 2023-04-03
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多