代码之家  ›  专栏  ›  技术社区  ›  Kristen Joseph-Delaffon

DQL Concat多个字符串

  •  1
  • Kristen Joseph-Delaffon  · 技术社区  · 6 年前

    我想用DQL连接许多字符串,但是当我尝试时有一个错误消息。

    我的代码:

    $qb = $this->_em->createQueryBuilder();
    $qb->select('u')
       ->from(Tutore::class, 'u')
       ->andWhere($qb->expr()->concat($qb->expr()->concat('u.nom', $qb->expr()->literal(' ')), 'u.prenom'), ':fullname')
       ->andWhere($qb->expr()->eq('u.ancien', 0))
       ->setParameter('fullname', $fullname);
    
    return $qb->getQuery()->getOneOrNullResult();
    

    错误消息:

    Uncaught PHP Exception Doctrine\ORM\Query\QueryException: "[Syntax Error] line 0, col 77: Error: Expected =, <, <=, <>, >, >=, !=, got 'AND'" at /vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 54
    

    我还尝试替换这个:

    $qb->expr()->literal(' '))
    

    一个简单的例子。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Imanali Mamadiev Ghazaleh Javaheri    6 年前

    非常简单:

    ->andWhere("concat(u.nom, ' ', u.prenom) = :fullname")
    .............................................................................