如何在 CreatequeryBuilder (symfony) 的 Setparameter 中传递一个间隔
How to pass an interval in Setparameter of CreatequeryBuilder (symfony)
使用 createqueryBuilder ,在它的 Setparameter 中,我想传递一个间隔,而不仅仅是一个变量或一个数字。我想传递一个像 [$min,$max] 这样的间隔,其中 min 和 max 是变量而不是数字。这是我到目前为止所做的:
$queryBuilder = $em->getRepository('MainBundle:Annonce')->createQueryBuilder('bp')
->where('bp.categorie =:cat1' )
->setParameter('cat1',[$min,$max])
但它不工作而且它不是有效代码。任何帮助将不胜感激:)
你可以做...
如果要使用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)
您还可以使用 Expr 助手 class,如下所示:
$qb->where( $qb->expr()->between('bp.categorie', ':minVal', ':maxVal'))
->setParameter('minVal', $min)
->setParameter('maxVal', $max)
在这样的构造中你可以直接将参数传递给 between() 方法:
$qb->expr()->between('bp.categorie', $min, $max)
使用 createqueryBuilder ,在它的 Setparameter 中,我想传递一个间隔,而不仅仅是一个变量或一个数字。我想传递一个像 [$min,$max] 这样的间隔,其中 min 和 max 是变量而不是数字。这是我到目前为止所做的:
$queryBuilder = $em->getRepository('MainBundle:Annonce')->createQueryBuilder('bp')
->where('bp.categorie =:cat1' )
->setParameter('cat1',[$min,$max])
但它不工作而且它不是有效代码。任何帮助将不胜感激:)
你可以做...
如果要使用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)
您还可以使用 Expr 助手 class,如下所示:
$qb->where( $qb->expr()->between('bp.categorie', ':minVal', ':maxVal'))
->setParameter('minVal', $min)
->setParameter('maxVal', $max)
在这样的构造中你可以直接将参数传递给 between() 方法:
$qb->expr()->between('bp.categorie', $min, $max)