gpt4 book ai didi

Doctrine 2 - 查询生成器条件查询...如果语句?

转载 作者:行者123 更新时间:2023-12-04 14:17:59 24 4
gpt4 key购买 nike

My query is doctirne 2. i have a status field in users, private or public. i want to be able to run this query and display all comments where status= public and private only if userid = current logged in user id(which i know, $loggerUserVarID)


  $q = $this->em->createQueryBuilder()
->select('c')
->from('\Entities\Comments', 'c')
->leftJoin('c.users', 'u')
->where('status = public') ??? display all public comments but private if it belpongs to the logged in user.?
->setParameter(1, $loggerUserVarID)
->getQuery();

目前,我在得到结果后使用 if 语句,有没有办法在这个查询中执行 if 语句?

最佳答案

所以,你想返回评论“如果状态是 'public' 或者 ownerId 是 $loggedUserVarID”,对吗?

请注意,如果 $loggedUserVarID 与所有者匹配,则您并不真正关心状态。

查看 querybuilder 和 dql 文档。他们非常清楚地解释了如何组合复杂的 where 条件。

你可能想要的是这样的:

$q = $this->em->createQueryBuilder()
->select('c')
->from('\Entities\Comments', 'c')
->join('c.users', 'u')
->where(
$qb->expr()->orX(
$qb->expr()->eq('status','public'),
$qb->expr()->eq('u.id',$loggedInUser)
)
)
->setParameter(1, $loggerUserVarID)
->getQuery();

关于 Doctrine 2 - 查询生成器条件查询...如果语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7716624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com