错误:预期的文字,得到了#SELECT;#39;

时间:2018-05-02 13:02:09

标签: doctrine-orm dql symfony4

我试图将方法添加到教条库

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上执行此查询,则返回预期结果,但使用doctrine i get

  

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

我无法找出错误。

1 个答案:

答案 0 :(得分:4)

$dql变量无效DQL。我不确定如何使其有效。

您可以编写纯SQL并运行

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

它是PDO的包装器,因此您将获得与执行简单PDO查询相同的结果。