@@ -243,7 +243,7 @@ protected function applyFilterText(FilterText $filter): void
243
243
// native handling with LikeFunction in v4
244
244
if (class_exists (LikeExpression::class)) {
245
245
$ conditions = [
246
- ICollection::OR ,
246
+ $ filter -> hasConjunctionSearch () ? ICollection:: AND : ICollection::OR ,
247
247
];
248
248
249
249
foreach ($ filter ->getCondition () as $ column => $ value ) {
@@ -272,10 +272,11 @@ protected function applyFilterText(FilterText $filter): void
272
272
$ condition = $ filter ->getCondition ();
273
273
$ expr = '( ' ;
274
274
$ params = [];
275
+ $ operator = $ filter ->hasConjunctionSearch () ? 'AND ' : 'OR ' ;
275
276
276
277
foreach ($ condition as $ column => $ value ) {
277
278
if ($ filter ->isExactSearch ()) {
278
- $ expr .= ' %column = %s OR ' ;
279
+ $ expr .= " %column = %s $ operator " ;
279
280
$ params [] = $ column ;
280
281
$ params [] = "$ value " ;
281
282
@@ -285,13 +286,13 @@ protected function applyFilterText(FilterText $filter): void
285
286
$ words = $ filter ->hasSplitWordsSearch () === false ? [$ value ] : explode (' ' , $ value );
286
287
287
288
foreach ($ words as $ word ) {
288
- $ expr .= ' %column LIKE %s OR ' ;
289
+ $ expr .= " %column LIKE %s $ operator " ;
289
290
$ params [] = $ column ;
290
291
$ params [] = "% $ word% " ;
291
292
}
292
293
}
293
294
294
- $ expr = preg_replace (' / OR $/' , ') ' , $ expr );
295
+ $ expr = preg_replace (" / $ operator $/ " , ') ' , $ expr );
295
296
296
297
array_unshift ($ params , $ expr );
297
298
0 commit comments