dea*_*ase 2 doctrine query-builder doctrine-orm
如果参数没有值,我该怎么办?
我的查询:
$query = $this->_em->createQueryBuilder()
->select('u')
->from('Users', 'u')
->where('u.id = ?1')
->andWhere('u.status= ?2')
->setParameter(1, $userid)
->setParameter(2, $status)
->getQuery();
return $query->getResult();
Run Code Online (Sandbox Code Playgroud)
如果没有$状态,那么它不会显示任何内容.
我尝试在查询之前设置一个条件来检查它是否为null,但是如果没有设置状态,我可以设置$ status的值
查询构建器正好用于构建条件查询.你可以这样做:
$qb = $this->_em->createQueryBuilder();
$query = $qb->select('u')
->from('Users', 'u')
->where('u.id = ?1')
->setParameter(1, $userid);
if ($status) {
$qb->andWhere('u.status = ?2')
->setParameter(2, $status);
}
return $qb->getQuery()->getResult();
Run Code Online (Sandbox Code Playgroud)
另外,最好使用命名占位符,例如:
$qb->andWhere('u.status = :status')
->setParameter('status', $status);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7315 次 |
| 最近记录: |