【发布时间】:2014-04-05 19:59:20
【问题描述】:
Doctrine 查询生成器只允许我连接两个字段。
class Expr {
// ...
public function concat($x, $y); // Returns Expr\Func
要连接我使用的 3 个字段:
$qb->expr()->concat(
'table.field1',
$qb->expr()->concat('table.field2', 'table.field3')
);
SQL 将是:
CONCAT('table.field1', CONCAT('table.field2', 'table.field3'))
如何获得一个 concat?
当我尝试直接调用时
new Expr\Func('CONCAT', array('table.field1', 'table.field2', 'table.field3'));
执行查询给我一个错误
[语法错误] line 0, col 237: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ','
转储 DQL:
CONCAT('table.field1', 'table.field2', 'table.field3')
使用 $qb->getQuery()->getSQL() 转储 SQL:
[语法错误] line 0, col 237: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ','
【问题讨论】:
标签: symfony doctrine-orm