Symfony 在学说中有三个或三个以上的领域
条令查询生成器只允许我连接两个字段Symfony 在学说中有三个或三个以上的领域,symfony,doctrine-orm,Symfony,Doctrine Orm,条令查询生成器只允许我连接两个字段 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', CO
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'))
如何获得1concat
当我试着直接打电话的时候
new Expr\Func('CONCAT', array('table.field1', 'table.field2', 'table.field3'));
执行查询时出错
[语法错误]第0行,第237列:错误:预期的条令\ORM\Query\Lexer::T_CLOSE_括号,get','
倾销DQL:
CONCAT('table.field1', 'table.field2', 'table.field3')
正在使用$qb->getQuery()->getSQL()转储SQL:
[语法错误]第0行,第237列:错误:预期的条令\ORM\Query\Lexer::T_CLOSE_括号,get','
中引入了参数数量可变的
CONCAT
,因此您可能使用的是旧版本。我在我的项目中测试了一个类似的DQL,并按预期工作
您应该通过以下方式升级您的ORM DEP:
php composer.phar require doctrine/orm:~2.4
请注意,(目前)变量参数仅由Expr\Func
构造函数支持,但在Expr::concat
方法中不受支持;您仍然需要以下语法:
new Expr\Func('CONCAT', array('table.field1', 'table.field2', 'table.field3'));
更新我在Expr::concat中创建了一个支持多个参数的