@@ -9,12 +9,14 @@ class StringFilter
9
9
protected $ query ;
10
10
protected $ filterData ;
11
11
protected $ conjungtion ;
12
+ protected $ contains ;
12
13
13
14
public function __construct ($ query , $ filterData , $ conjungtion )
14
15
{
15
16
$ this ->query = $ query ;
16
17
$ this ->filterData = $ filterData ;
17
18
$ this ->conjungtion = $ conjungtion ;
19
+ $ this ->contains = config ('dx-adapter.query.contains ' ) ?: "like " ;
18
20
}
19
21
20
22
public static function build ($ query , $ filterData , $ conjungtion )
@@ -43,16 +45,16 @@ protected function notCondition()
43
45
{
44
46
switch ($ this ->filterData ->condition ) {
45
47
case 'contains ' :
46
- $ this ->query ->orWhere ($ this ->filterData ->field , ' not like ' , "% {$ this ->filterData ->value }% " );
48
+ $ this ->query ->orWhere ($ this ->filterData ->field , " not $ this -> contains " , "% {$ this ->filterData ->value }% " );
47
49
break ;
48
50
case 'notcontains ' :
49
- $ this ->query ->orWhere ($ this ->filterData ->field , ' like ' , "% {$ this ->filterData ->value }% " );
51
+ $ this ->query ->orWhere ($ this ->filterData ->field , " $ this -> contains " , "% {$ this ->filterData ->value }% " );
50
52
break ;
51
53
case 'startswith ' :
52
- $ this ->query ->orWhere ($ this ->filterData ->field , ' not like ' , "{$ this ->filterData ->value }% " );
54
+ $ this ->query ->orWhere ($ this ->filterData ->field , " not $ this -> contains " , "{$ this ->filterData ->value }% " );
53
55
break ;
54
56
case 'endswith ' :
55
- $ this ->query ->orWhere ($ this ->filterData ->field , ' not like ' , "% {$ this ->filterData ->value }" );
57
+ $ this ->query ->orWhere ($ this ->filterData ->field , " not $ this -> contains " , "% {$ this ->filterData ->value }" );
56
58
break ;
57
59
case '= ' :
58
60
$ this ->query ->whereNot ($ this ->filterData ->field , $ this ->filterData ->value );
@@ -67,16 +69,16 @@ protected function orCondition()
67
69
{
68
70
switch ($ this ->filterData ->condition ) {
69
71
case 'contains ' :
70
- $ this ->query ->orWhere ($ this ->filterData ->field , ' like ' , "% {$ this ->filterData ->value }% " );
72
+ $ this ->query ->orWhere ($ this ->filterData ->field , " $ this -> contains " , "% {$ this ->filterData ->value }% " );
71
73
break ;
72
74
case 'notcontains ' :
73
- $ this ->query ->orWhere ($ this ->filterData ->field , ' not like ' , "% {$ this ->filterData ->value }% " );
75
+ $ this ->query ->orWhere ($ this ->filterData ->field , " not $ this -> contains " , "% {$ this ->filterData ->value }% " );
74
76
break ;
75
77
case 'startswith ' :
76
- $ this ->query ->orWhere ($ this ->filterData ->field , ' like ' , "{$ this ->filterData ->value }% " );
78
+ $ this ->query ->orWhere ($ this ->filterData ->field , " $ this -> contains " , "{$ this ->filterData ->value }% " );
77
79
break ;
78
80
case 'endswith ' :
79
- $ this ->query ->orWhere ($ this ->filterData ->field , ' like ' , "% {$ this ->filterData ->value }" );
81
+ $ this ->query ->orWhere ($ this ->filterData ->field , " $ this -> contains " , "% {$ this ->filterData ->value }" );
80
82
break ;
81
83
case '= ' :
82
84
$ this ->query ->orWhere ($ this ->filterData ->field , $ this ->filterData ->value );
@@ -90,16 +92,16 @@ protected function andCondition()
90
92
{
91
93
switch ($ this ->filterData ->condition ) {
92
94
case 'contains ' :
93
- $ this ->query ->where ($ this ->filterData ->field , ' like ' , "% {$ this ->filterData ->value }% " );
95
+ $ this ->query ->where ($ this ->filterData ->field , " $ this -> contains " , "% {$ this ->filterData ->value }% " );
94
96
break ;
95
97
case 'notcontains ' :
96
- $ this ->query ->where ($ this ->filterData ->field , ' not like ' , "% {$ this ->filterData ->value }% " );
98
+ $ this ->query ->where ($ this ->filterData ->field , " not $ this -> contains " , "% {$ this ->filterData ->value }% " );
97
99
break ;
98
100
case 'startswith ' :
99
- $ this ->query ->where ($ this ->filterData ->field , ' like ' , "{$ this ->filterData ->value }% " );
101
+ $ this ->query ->where ($ this ->filterData ->field , " $ this -> contains " , "{$ this ->filterData ->value }% " );
100
102
break ;
101
103
case 'endswith ' :
102
- $ this ->query ->where ($ this ->filterData ->field , ' like ' , "% {$ this ->filterData ->value }" );
104
+ $ this ->query ->where ($ this ->filterData ->field , " $ this -> contains " , "% {$ this ->filterData ->value }" );
103
105
break ;
104
106
case '= ' :
105
107
$ this ->query ->where ($ this ->filterData ->field , $ this ->filterData ->value );
0 commit comments