【问题标题】:DQL Concat many stringsDQL Concat 许多字符串
【发布时间】:2018-09-06 07:46:13
【问题描述】:

我想用 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(' '))

通过一个简单的:“”。

【问题讨论】:

  • 第一个子句应该是where,而不是andWhere
  • 其实可以用where和andWhere没有任何区别

标签: php symfony doctrine query-builder dql


【解决方案1】:

很简单:

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

【讨论】:

  • 有没有办法用学说 expr 函数做到这一点?
  • 我觉得这种方式还不错。它对你有用吗?
猜你喜欢
  • 2016-04-17
  • 2018-12-14
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 2016-12-17
相关资源
最近更新 更多