我正在尝试在 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 中参数的值(在本例中为“静态值”作为参数)。
我收到以下错误:
错误:预期的 IdentificationVariable |标量表达式 |聚合表达式 |函数声明 |部分对象表达式 | "("子选择 ")"| CaseExpression,得到':param_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',
));
您只需将参数放在括号内即可。
关于php - DQL select 语句中的参数(Symfony2/Doctrine),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042472/