簡體   English   中英

Symfony原則if querybuilder中的if語句

[英]Symfony Doctrine if statement in querybuilder

是否可以在理論查詢生成器中插入IF語句? 例如:我有具有OneToMany關系的UserGroup實體。 組具有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM