9
9
namespace Ibexa \Core \Persistence \Legacy \Content \Type \Gateway \CriterionHandler ;
10
10
11
11
use Doctrine \DBAL \Connection ;
12
+ use Doctrine \DBAL \ParameterType ;
12
13
use Doctrine \DBAL \Query \QueryBuilder ;
13
- use Ibexa \Contracts \Core \Repository \Values \ContentType \Query \Base ;
14
- use Ibexa \Contracts \Core \Repository \Values \ContentType \Query \Criterion \ContainsFieldDefinitionIds as ContainsFieldDefinitionIdsCriterion ;
14
+ use Ibexa \Contracts \Core \Repository \Values \ContentType \Query \Criterion \ContainsFieldDefinitionId as ContainsFieldDefinitionIdCriterion ;
15
15
use Ibexa \Contracts \Core \Repository \Values \ContentType \Query \CriterionInterface ;
16
16
use Ibexa \Core \Persistence \Legacy \Content \Type \Gateway \CriterionVisitor \CriterionVisitor ;
17
+ use Ibexa \Core \Repository \Values \ContentType \Query \Base ;
17
18
18
- final class ContainsFieldDefinitionIds extends Base
19
+ final class ContainsFieldDefinitionId extends Base
19
20
{
20
21
public function supports (CriterionInterface $ criterion ): bool
21
22
{
22
- return $ criterion instanceof ContainsFieldDefinitionIdsCriterion ;
23
+ return $ criterion instanceof ContainsFieldDefinitionIdCriterion ;
23
24
}
24
25
25
26
/**
26
- * @param \Ibexa\Contracts\Core\Repository\Values\ContentType\Query\Criterion\ContainsFieldDefinitionIds $criterion
27
+ * @param \Ibexa\Contracts\Core\Repository\Values\ContentType\Query\Criterion\ContainsFieldDefinitionId $criterion
27
28
*/
28
29
public function apply (
29
30
CriterionVisitor $ criterionVisitor ,
@@ -32,9 +33,17 @@ public function apply(
32
33
): string {
33
34
$ this ->joinFieldDefinitions ($ qb );
34
35
35
- return $ qb ->expr ()->in (
36
+ $ value = $ criterion ->getValue ();
37
+ if (is_array ($ value )) {
38
+ return $ qb ->expr ()->in (
39
+ 'a.id ' ,
40
+ $ qb ->createNamedParameter ($ criterion ->getValue (), Connection::PARAM_INT_ARRAY )
41
+ );
42
+ }
43
+
44
+ return $ qb ->expr ()->eq (
36
45
'a.id ' ,
37
- $ qb ->createNamedParameter ($ criterion ->getValue (), Connection:: PARAM_INT_ARRAY )
46
+ $ qb ->createNamedParameter ($ criterion ->getValue (), ParameterType:: INTEGER )
38
47
);
39
48
}
40
49
}
0 commit comments