[英]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.