Doctrine 原则:不可能在columnA和columnB之间添加where

Doctrine 原则:不可能在columnA和columnB之间添加where,doctrine,api-platform.com,Doctrine,Api Platform.com,有了这个提示,它就完美了,但现在我有另一个问题 我想用下面的语句设置一个“andWhere”子句:和351在columnA和columnB之间 我使用以下PHP代码进行了尝试: $rootAlias = $queryBuilder->getRootAlias()[0]; $queryBuilder->andWhere(sprintf(:value between columnA and columnB )); $queryBuilder->setParameter('value

有了这个提示,它就完美了,但现在我有另一个问题

我想用下面的语句设置一个“andWhere”子句:
和351在columnA和columnB之间

我使用以下PHP代码进行了尝试:

$rootAlias = $queryBuilder->getRootAlias()[0];
$queryBuilder->andWhere(sprintf(:value between columnA and columnB ));
$queryBuilder->setParameter('value', '351');
But if I try this, I get the following error from doctrine:

[Syntax Error] line 0, col 52: Error: Expected =, <, <=, <>, >, >=, !=, got 'between'
$rootAlias=$queryBuilder->getRootAlias()[0];
$queryBuilder->andWhere(sprintf(:columnA和columnB之间的值));
$queryBuilder->setParameter('value','351');
但如果我试着这样做,我会从教义中得到以下错误:
[语法错误]第0行第52列:错误:应为=,=,!=,有“中间人”

似乎不可能添加这个where子句。是否有其他选项可添加此选项?

中间应这样使用:

$queryBuilder->andWhere(sprintf(%s.columnA between :value1 and :value2), $queryBuilder->getRootAlias()[0]);
如果您想测试值351是否在columnA和columnB中,您应该在它是一个ID集合的情况下进行测试