【问题标题】:How to pass an interval in Setparameter of CreatequeryBuilder (symfony)如何在 CreatequeryBuilder 的 Setparameter 中传递一个间隔(symfony)
【发布时间】:2017-08-10 18:40:23
【问题描述】:

使用 createqueryBuilder ,在它的 Setparameter 中,我想传递一个区间,而不仅仅是一个变量或一个数字。我想传递一个像 [$min,$max] 这样的区间,其中 min 和 max 是变量而不是数字。这是我到目前为止所做的:

 $queryBuilder = $em->getRepository('MainBundle:Annonce')->createQueryBuilder('bp')

        ->where('bp.categorie =:cat1' )
        ->setParameter('cat1',[$min,$max])

但它不工作并且它不是有效代码。任何帮助将不胜感激:)

【问题讨论】:

    标签: symfony intervals query-builder


    【解决方案1】:

    您可以选择...

    如果你想使用BETWEEN f.e:

    $qb->where('bp.categorie BETWEEN :minValue AND :maxValue')
       ->setParameter('minValue', $min)
       ->setParameter('maxValue', $max)
    

    你还可以:

    $qb->where('bp.categorie >= :minValue')
           ->andWhere('bp.categorie <= :maxValue')
           ->setParameter('minValue', $min)
           ->setParameter('maxValue', $max)
    

    【讨论】:

    • 非常感谢你为我节省了很多时间
    【解决方案2】:

    您还可以使用 Expr 帮助器类,如下所示: $qb->where( $qb->expr()->between('bp.categorie', ':minVal', ':maxVal')) ->setParameter('minVal', $min) ->setParameter('maxVal', $max)

    在这样的构造中你可以直接将参数传递给 between() 方法:

    $qb-&gt;expr()-&gt;between('bp.categorie', $min, $max)

    【讨论】:

    • 感谢帮助我:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多