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

标签 php symfony doctrine-orm dql

我正在尝试在 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/

相关文章:

php - Symfony2 应用程序在每次请求时解析 YML

php - Laravel:零值之间的日期

php - Symfony 4 中的注解

php - 创建调整大小的图像缓存但防止滥用

symfony - Twig - 循环默认值

symfony - Doctrine2类表继承和级联删除

php - Doctrine 2 将数据更新到数据库中但不将数据更新到实体中

php - 当 Doctrine 不允许我将复合主键与另一个实体的外键关联时,如何对 ER 图进行建模?

php - 发送 GET 请求

php - 在 CakePHP 2.x 中使用命名参数