Skip to content

Commit ca15719

Browse files
committed
Merge remote-tracking branch 'refs/remotes/origin/uuidbin-search' into uuidbin-search
2 parents 725f549 + bff8572 commit ca15719

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

src/Bridge/Doctrine/Orm/Filter/SearchFilter.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryBuilderHelper;
2121
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
2222
use ApiPlatform\Core\Exception\InvalidArgumentException;
23-
use Doctrine\Common\Collections\ArrayCollection;
2423
use Doctrine\DBAL\Types\Type as DBALType;
2524
use Doctrine\ORM\Query\Parameter;
2625
use Doctrine\ORM\QueryBuilder;
@@ -139,7 +138,6 @@ protected function filterProperty(string $property, $value, QueryBuilder $queryB
139138
* The only fix is to provide field type to doctrine ...
140139
* BUT it is not possible with setParameter(), as third arg can only be
141140
* \Doctrine\DBAL\Connection::PARAM_STR_ARRAY
142-
*
143141
* The only way to do this will be to rewrite the IN() statement to multiple values,
144142
* each provided as a single setParameter()
145143
*/
@@ -162,11 +160,6 @@ protected function filterProperty(string $property, $value, QueryBuilder $queryB
162160
$args[] = new Parameter($valueParameter, $caseSensitive ? $values[$i] : strtolower($values[$i]), $type);
163161
}
164162

165-
// setParameters reset current parameters set, so we need to merge with getParameters()
166-
$parameters = new ArrayCollection($args);
167-
foreach ($queryBuilder->getParameters() as $p) {
168-
$parameters->add($p);
169-
}
170163
$queryBuilder
171164
->andWhere(sprintf($wrapCase('%s.%s').' IN (%s)', $alias, $field, implode(',', $inQuery)))
172165
->setParameters($parameters);
@@ -222,10 +215,10 @@ protected function filterProperty(string $property, $value, QueryBuilder $queryB
222215
*
223216
* @throws InvalidArgumentException If strategy does not exist
224217
*/
225-
protected function addWhereByStrategy(string $strategy, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $alias, string $field, $value, bool $caseSensitive)
218+
protected function addWhereByStrategy(string $strategy, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $alias, string $field, $value, bool $caseSensitive, ClassMetadata $metadata = null)
226219
{
227220
// check if we have metadata
228-
if (($metadata = func_get_arg(7)) instanceof ClassMetadata) {
221+
if ($metadata instanceof ClassMetadata) {
229222
$type = $metadata->getTypeOfField($field);
230223
} else {
231224
@trigger_error('addWhereByStrategy() will require argument ClassMetadata in 3.0.', E_USER_DEPRECATED);

0 commit comments

Comments
 (0)