【问题标题】:Error: Expected Literal, got 'SELECT'错误:预期文字,得到“选择”
【发布时间】:2018-05-02 13:02:08
【问题描述】:

我正在尝试向学说存储库添加一个方法

public function getOpenedImport(Uftts $fattura){
    $dql = "SELECT F.importoFattura*C.segnoNumerico - (SELECT SUM(I.importo*C2.segnoNumerico)
                FROM MyAppDomain:Incas I
                INNER JOIN MyAppDomain:Cjcau AS C2 ON C2.codice = I.causale
                WHERE I.annoDocumento = F.annoDocumento AND I.numeroDocumento = F.numeroDocument) 
            FROM MyAppDomain:Uftts F
            INNER JOIN MyAppDomain:Cjcau C ON C.codice = F.causale
            WHERE F.annoDocumento = :annoDocumento AND F.numeroDocumento = :numeroDocumento";

    $query = $this->getEntityManager()->createQuery($dql);

    $query->setParameters(['annoDocumento' => $fattura->getAnnoDocumento(),
                               'numeroDocumento' => $fattura->getNumeroDocumento()]);


        return $query->getSingleScalarResult();
}

如果在我的 Sql Server 2008 上执行此查询会返回预期结果,但使用学说我得到了

错误:预期的文字,得到 'SELECT'

我不知道出了什么问题。

【问题讨论】:

    标签: doctrine-orm dql symfony4


    【解决方案1】:

    $dql 变量不是有效的 DQL。我不知道如何使它也有效。

    您可以编写简单的 SQL 并运行

    $this->getEntityManager()->getConnection()->executeQuery($query, $params)

    它是 PDO 的包装器,因此您将获得类似于执行简单 PDO 查询的结果。

    【讨论】:

      猜你喜欢
      • 2015-09-02
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2015-04-08
      • 2014-03-03
      • 2016-11-09
      相关资源
      最近更新 更多