我正在尝试在 DQL-s SELECT 部件中使用外部参数,但由于错误而不起作用。
我正在尝试什么:
$query = $this->getEntityManager()
->createQuery("
SELECT me.column_one, :param_doesnt_work param
FROM CompanyMyBundle:MyEntity me
WHERE me.column_one = :param_one
AND me.column_two = :param_two
")->setParameters(array(
'param_doesnt_work' => 'A static value',
'param_one' => 'some param',
'param_two' => 'another param',
));
我想得到两列作为结果,"column_one"的值和选择中的参数值(在本例中为"静态值"作为参数)。
我收到以下错误:
错误:预期的标识变量 |标量表达式 |聚合表达式 |功能声明 |部分对象表达式 |"("子选择")" |CaseExpression, got ':p aram_doesnt_work'
是否可以在那里使用参数,或者对此有完全不同的解决方案?找不到任何示例。
我刚刚遇到了同样的问题。
这是我找到的解决方案:
$query = $this->getEntityManager()
->createQuery("
SELECT me.column_one, (:param_doesnt_work param)
FROM CompanyMyBundle:MyEntity me
WHERE me.column_one = :param_one
AND me.column_two = :param_two
")->setParameters(array(
'param_doesnt_work' => 'A static value',
'param_one' => 'some param',
'param_two' => 'another param',
));
您只需要将参数放在括号下即可。