dea*_*ase 6 doctrine query-builder doctrine-orm
我的查询是doctirne 2.我在用户,私人或公共领域都有一个状态字段.我希望能够运行此查询并显示所有注释status = public和private如果userid =当前登录用户ID(我知道,$ 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();
Run Code Online (Sandbox Code Playgroud)
此刻,我在获得结果后使用if语句,是否有办法在此查询中执行if语句?
所以,你想要返回评论"如果状态是'公共'或者ownerId是$ loggedUserVarID",对吧?
请注意,如果$ loggedUserVarID与所有者匹配,则您并不真正关心状态.
查看querybuilder和dql文档.他们非常清楚地解释了如何将复杂的条件放在一起.
你可能想要的是:
$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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5616 次 |
| 最近记录: |