DQL Symfony 2,设置布尔值

时间:2017-01-04 07:55:10

标签: symfony doctrine-orm dql

我有关于DQL Symfony 2的问题,我想在我的select中设置第一个值。值是布尔值,但我不能这样做。这是我的代码:

Module2SaveService

这段代码是错误但我不知道问题,看看代码“真如价值”,我觉得有问题,有人可以帮助我吗?

错误是:

  

[语法错误]第0行,第51栏:错误:预期的IdentificationVariable   | ScalarExpression | AggregateExpression |功能声明|   PartialObjectExpression | “(”Subselect“)”| CaseExpression,得到了   '真正的'

    public function findAllMenuListForMenuGroup(){
    $query = $this->getEntityManager()
        ->createQueryBuilder()
        ->select('a.id, a.lft, a.lvl, a.rgt, a.name, a.title, true as value, a.description')
        ->from(Menu::class,'a')
        ->orderBy('a.root, a.lft','ASC')
        ->getQuery();
    return $query->getArrayResult();
}

3 个答案:

答案 0 :(得分:1)

Doctrine使用它自己的别名。您不能使用"作为"这里。

    $query = $this->getEntityManager()
        ->createQueryBuilder()
        ->select('a.id, a.lft, a.lvl, a.rgt, a.name, a.title, a.true, a.description')
        ->from(Menu::class,'a')
        ->orderBy('a.root,'ASC')
        ->orderBy('a.lft,'ASC')
        ->getQuery();
    return $query->getArrayResult();

答案 1 :(得分:0)

尝试

1 as value 

而不是

true as value

可能你必须附上“字符。

此外,您需要使用addOrderBy而不是orderBy,如下所示:

    ->addOrderBy('a.root','ASC')
    ->addOrderBy('a.lft','ASC')

而不是:

    ->orderBy('a.root, a.lft','ASC')

希望这个帮助

答案 2 :(得分:0)

不要在DQL中这样做。 向始终返回someIds的对象添加方法。然后从您的DQL中删除true