我有这个查询
$qb->select('u')
->from('UserBundle:User', 'u')
->where('u.location = :identifier')
->orderBy('u.firstName', 'ASC')
->setParameter('identifier', 2);
我希望如果$ identifier存在,那么它应该过滤结果,否则我得到所有结果,如
$qb->select('u')
->from('UserBundle:User', 'u')
if($identifier)
->where('u.location = :identifier')
->orderBy('u.firstName', 'ASC')
if($identifier)
->setParameter('identifier', 2);
是否可能
答案 0 :(得分:8)
有可能,您只需要重新构建代码。
$qb->select('u')
->from('UserBundle:User', 'u')
->orderBy('u.firstName', 'ASC');
if($identifier) {
$qb->where('u.location = :identifier')
->setParameter('identifier', 2);
}