DQL Symfony 2,设置布尔值



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

    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();
}

这段代码是错误的,但我不知道问题所在,看看代码"真值",我觉得有问题,有人可以帮助我吗?

错误是:

[语法错误] 第 0 行,列 51:错误:预期的标识变量 |标量表达式 |聚合表达式 |功能声明 | 部分对象表达式 |"("子选择")" |案例表达式,得到 "真"

    /**
 * @ORMId()
 * @ORMColumn(name="id", type="integer")
 * @ORMGeneratedValue(strategy="AUTO")
 */
private $id;
/**
 * @ORMManyToMany(targetEntity="Menu", inversedBy="menuGroup")
 * @ORMJoinTable(name="administration_menu_group_details")
 */
private $menu;
/**
 * @ORMOneToMany(targetEntity="User", mappedBy="menuGroup")
 */
private $user;
/**
 * @var string
 *
 * @ORMColumn(name="name", type="string", length=255, unique=true)
 */
private $name;
/**
 * @var string
 *
 * @ORMColumn(name="description", type="string", length=1000)
 */
private $description;

Doctrine 使用它自己的别名。您不能在此处使用"as"。

    $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 as value 

而不是

true as value

可能你必须用"字符括起来。

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

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

而不是:

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

希望这个帮助

不要在 DQL 中执行此操作。向对象添加一个方法,该方法始终返回 true .然后从 DQL 中删除select

相关内容

  • 没有找到相关文章

最新更新