[英]Symfony Doctrine if statement in querybuilder
是否可以在理论查询生成器中插入IF语句? 例如:我有具有OneToMany关系的User
和Group
实体。 组具有hidden
布尔字段。 如果Group
所有者不是当前用户,如何创建查询构建器以选择hidden
组= false。 这样,只有群组所有者才能看到hidden = true群组。 而其他用户只能看到hidden = false组
$qb = $this->createQueryBuilder('group')
->where('group.owner = :userId')
->setParameter('userId', $user->getId())
->orderBy('group.created', 'DESC');
这应该适合您的需求
$qb = $this->createQueryBuilder('group');
$qb
->where(
$qb->expr()->andX(
$qb->expr()->eq('group.owner', ':userId'),
$qb->expr()->eq('group.hidden', true)
)
)
->orWhere($qb->expr()->eq('group.hidden', false))
->setParameter('userId', $user->getId())
->orderBy('group.created', 'DESC');
仅当当前用户是所有者并且组被隐藏时,查询的第一部分才会保留一行。
第二部分将包括所有非隐藏组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.