我正在尝试在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'的值和Select中的param值(在这种情况下为'静态值'作为参数)。
我收到以下错误:
错误:预期识别变量| ScalarExpression | AggregateExpression |功能声明| PartialObjectExpression | “(”Subselect“)”| CaseExpression,得到':param_doesnt_work'
是否可以在那里使用参数,或者有一个完全不同的解决方案呢?找不到任何例子。
答案 0 :(得分:6)
我遇到了同样的问题。
以下是我找到的解决方案:
$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',
));
您只需将参数放在括号下即可。