2
2
3
3
namespace App \ApiPlatform ;
4
4
5
- use ApiPlatform \Core \Bridge \Doctrine \Orm \Filter \AbstractContextAwareFilter ;
6
- use ApiPlatform \Core \Bridge \Doctrine \Orm \Util \QueryNameGeneratorInterface ;
5
+ use ApiPlatform \Doctrine \Orm \Filter \AbstractFilter ;
6
+ use ApiPlatform \Doctrine \Orm \Util \QueryNameGeneratorInterface ;
7
+ use ApiPlatform \Metadata \Operation ;
7
8
use Doctrine \ORM \QueryBuilder ;
8
9
9
- class SearchInNamesFilter extends AbstractContextAwareFilter
10
+ class SearchInNamesFilter extends AbstractFilter
10
11
{
11
- protected function filterProperty (string $ property , $ value , QueryBuilder $ queryBuilder , QueryNameGeneratorInterface $ queryNameGenerator , string $ resourceClass , string $ operationName = null )
12
- {
13
- if ($ property !== 'name ' ) {
14
- return ;
15
- }
16
- $ alias = $ queryBuilder ->getRootAliases ()[0 ];
17
- $ infoAlias = $ queryNameGenerator ->generateJoinAlias ('info ' );
18
- $ queryBuilder
19
- ->innerJoin ("{$ alias }.infos " , $ infoAlias )
20
- ->andWhere ("( {$ alias }.firstName LIKE '% {$ value }%' OR {$ alias }.lastName LIKE '% {$ value }%' OR {$ infoAlias }.nickname LIKE '% {$ value }%') " );
21
- }
22
-
23
12
public function getDescription (string $ resourceClass ): array
24
13
{
25
14
return [
@@ -30,4 +19,17 @@ public function getDescription(string $resourceClass): array
30
19
],
31
20
];
32
21
}
33
- }
22
+
23
+ protected function filterProperty (string $ property , $ value , QueryBuilder $ queryBuilder , QueryNameGeneratorInterface $ queryNameGenerator , string $ resourceClass , Operation $ operation = null , array $ context = []): void
24
+ {
25
+ if ('name ' !== $ property ) {
26
+ return ;
27
+ }
28
+ $ alias = $ queryBuilder ->getRootAliases ()[0 ];
29
+ $ infoAlias = $ queryNameGenerator ->generateJoinAlias ('info ' );
30
+ $ queryBuilder
31
+ ->innerJoin ("{$ alias }.infos " , $ infoAlias )
32
+ ->andWhere ("( {$ alias }.firstName LIKE '% {$ value }%' OR {$ alias }.lastName LIKE '% {$ value }%' OR {$ infoAlias }.nickname LIKE '% {$ value }%') " )
33
+ ;
34
+ }
35
+ }
0 commit comments