如何在CreatequeryBuilder(symfony)的Setparameter中传递间隔

时间:2017-08-10 18:40:23

标签: symfony intervals query-builder

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

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

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

但它不起作用,而且它不是有效的代码。任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

你可以做任何事......

如果您想使用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)

答案 1 :(得分:0)

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

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

$qb->expr()->between('bp.categorie', $min, $max)