使用createqueryBuilder,在它的Setparameter中我想传递一个间隔而不仅仅是一个变量或一个数字。我想传递一个像[$ min,$ max]这样的间隔,其中min和max是可变的而不是数字。这是我到目前为止所做的:
$queryBuilder = $em->getRepository('MainBundle:Annonce')->createQueryBuilder('bp')
->where('bp.categorie =:cat1' )
->setParameter('cat1',[$min,$max])
但它不起作用,而且它不是有效的代码。任何帮助将不胜感激:)
答案 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)