【问题标题】:Doctrine2 expressions eq special char for matching allDoctrine2 表达式 eq 用于匹配所有的特殊字符
【发布时间】:2016-08-26 07:57:18
【问题描述】:

我正在尝试使用学说查询生成器运行过滤器,我正在使用 expr eq,但如果我没有过滤器值,我想为 expr eq 使用一些特殊的符号来返回所有行。

我的代码:

$q = $qb->select(array('p'))
                ->from(payment::class, 'p')
                ->innerJoin(customer::class, 'z', 'WITH', 'p.customer= z.id')
                ->where(                            
                        $qb->expr()->eq('z.id', '?2')
                )
                ->setMaxResults($limit)
                ->setFirstResult($offset)
                ->orderBy('p.'.$sortField, $sortType) 

我想像(->setParameter(2, "*"))

                ->setParameter(2, $filtry['customer'])
                ->getQuery();

        return $q->getResult();

有可能吗?我不想为每个过滤器编写不同的查询生成器。

对不起我的英语

谢谢

【问题讨论】:

    标签: php sql symfony doctrine-orm


    【解决方案1】:

    它是一个查询生成器,因此您可以有条件地添加参数,例如:

    $qb->select(array('p'))
                    ->from(payment::class, 'p')
                    ->innerJoin(customer::class, 'z', 'WITH', 'p.customer= z.id')
                    ->setMaxResults($limit)
                    ->setFirstResult($offset)
                    ->orderBy('p.'.$sortField, $sortType) 
    
    
    if ($filtry['customer'])
    {
    $qb->andWhere(                            
                  $qb->expr()->eq('z.id', $filtry['customer'])
                    )
    };
    
    $q = $qb->getQuery()
    

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多