-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathalternative-groups-with-multiple-joins.php
70 lines (68 loc) · 2.45 KB
/
alternative-groups-with-multiple-joins.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
declare(strict_types=1);
// posts whose author contains John and Jane, OR posts whose author contains Jake and post title contains foo
return [
'SELECT post1, user1 FROM GraphQLTests\Doctrine\Blog\Model\Post post1 INNER JOIN post1.user user1 WHERE (user1.name LIKE :filter1 AND user1.name LIKE :filter2) OR (user1.name LIKE :filter3 AND post1.title LIKE :filter4)',
GraphQLTests\Doctrine\Blog\Model\Post::class,
[
'groups' => [
[
'groupLogic' => 'OR',
'conditionsLogic' => 'AND',
'joins' => [
'user' => [
'type' => 'innerJoin',
'conditions' => [
[
'name' => [
'like' => [
'value' => '%John%',
'not' => false,
],
],
],
[
'name' => [
'like' => [
'value' => '%Jane%',
'not' => false,
],
],
],
],
],
],
],
[
'groupLogic' => 'OR',
'conditionsLogic' => 'AND',
'joins' => [
'user' => [
'type' => 'innerJoin',
'conditions' => [
[
'name' => [
'like' => [
'value' => '%Jake%',
'not' => false,
],
],
],
],
],
],
'conditions' => [
[
'title' => [
'like' => [
'value' => '%foo%',
'not' => false,
],
],
],
],
],
],
],
[],
];