JOIN 的学说查询错误:字符串的预期结尾,得到“I”


Doctrine Query Error for JOIN: Expected end of string, got 'I'

我的PHP代码是:

        $company = $qb->select("c")
                  ->from("CRMBundle:TblCompanyDomain","cd")
                  ->join("cd.company","c")
                  ->leftJoin("CRMBundle:TblCompanyAddress",
                             "ca",
                             "WITH",
                             "ca.company = c")
                  ->join("ca.country","cc")
                  ->where($qb->expr()->andX(
                      $qb->expr()->in("cd.domain",":domain"),
                      $qb->expr()->eq("c.channel",":channel_id")
                  ))
                  ->setParameters($parameters)
                  ->setMaxResults(1)
                  ->getQuery()
                  ->getOneOrNullResult();

结束接收的 DQL 代码为:

SELECT 
    c 
FROM 
     CRMBundle:TblCompanyDomain cd 
     INNER JOIN cd.company c 
     LEFT JOIN CRMBundle:TblCompanyAddress ca WITH ca.company = c 
     INNER JOIN ca.country cc 
WHERE 
     cd.domain IN(:domain) AND 
     c.channel = :channel_id

当我执行此查询时,我收到此错误:

[Syntax Error] line 0, col 44: Error: Expected end of string, got 'I' 
enter code here

我看不到任何语法错误。问题出在哪里?

我的symfony版本:2.6.11

我的教义版本:2.2

SELECT 
    c 
FROM 
     CRMBundle:TblCompanyDomain cd 
     INNER JOIN cd.company c 
     LEFT JOIN CRMBundle:TblCompanyAddress ca WITH ca.company = c
     INNER JOIN ca.country cc 
WHERE 
     cd.domain IN(:domain) AND 
     c.channel = :channel_id

我认为你需要一些东西

我已经从注释更改为yml我的学说orm映射和修复的问题。

我经历过很多次同样的问题,并理解真正的问题。当我使用 utf-8 的 Doctrine 注释时,这个问题被触发了。可能是,原因是土耳其语上的utf-8。因为低"ı"字符的首都是"I",而低"i"卡拉赫特的首都是"İ"。