DQL select 语句 (Symfony2/Doctrine) 中的参数



我正在尝试在 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',
));

您只需要将参数放在括号下即可。

相关内容

  • 没有找到相关文章

最新更新