Skip to content

Commit 2cbdb2b

Browse files
authored
Merge pull request #10 from ghonijee/development
Update Config & Sort Query Builder
2 parents c95d0c9 + 7e457e3 commit 2cbdb2b

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
[![Total Downloads](https://img.shields.io/packagist/dt/ghonijee/query-adapter.svg?style=flat-square)](https://packagist.org/packages/ghonijee/query-adapter)
55
[![Actions Status](https://github.com/ghonijee/laravel-query-adapter/actions/workflows/main.yml/badge.svg)](https://github.com/ghonijee/laravel-query-adapter/actions)
66

7+
## Documentation
8+
Full Documentation [QueryAdapter Docs](https://query-adapter.netlify.app/docs/). This site documentation is under development.
9+
710
## Installation
811

912
You can install the package via composer:

config/dx-adapter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
'take' => 'take',
1313
],
1414
'query' => [
15-
'contains' => 'LIKE'
15+
'contains' => 'like'
1616
]
1717
];

src/FilterClass/QueryClass/StringFilter.php

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,14 @@ class StringFilter
99
protected $query;
1010
protected $filterData;
1111
protected $conjungtion;
12+
protected $contains;
1213

1314
public function __construct($query, $filterData, $conjungtion)
1415
{
1516
$this->query = $query;
1617
$this->filterData = $filterData;
1718
$this->conjungtion = $conjungtion;
19+
$this->contains = config('dx-adapter.query.contains') ?: "like";
1820
}
1921

2022
public static function build($query, $filterData, $conjungtion)
@@ -43,16 +45,16 @@ protected function notCondition()
4345
{
4446
switch ($this->filterData->condition) {
4547
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}%");
4749
break;
4850
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}%");
5052
break;
5153
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}%");
5355
break;
5456
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}");
5658
break;
5759
case '=':
5860
$this->query->whereNot($this->filterData->field, $this->filterData->value);
@@ -67,16 +69,16 @@ protected function orCondition()
6769
{
6870
switch ($this->filterData->condition) {
6971
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}%");
7173
break;
7274
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}%");
7476
break;
7577
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}%");
7779
break;
7880
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}");
8082
break;
8183
case '=':
8284
$this->query->orWhere($this->filterData->field, $this->filterData->value);
@@ -90,16 +92,16 @@ protected function andCondition()
9092
{
9193
switch ($this->filterData->condition) {
9294
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}%");
9496
break;
9597
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}%");
9799
break;
98100
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}%");
100102
break;
101103
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}");
103105
break;
104106
case '=':
105107
$this->query->where($this->filterData->field, $this->filterData->value);

tests/TestCase.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ protected function usesMySqlConnection(Application $app)
4444
$app->config->set('dx-adapter.request.order', 'sort');
4545
$app->config->set('dx-adapter.request.skip', 'skip');
4646
$app->config->set('dx-adapter.request.take', 'take');
47-
$app->config->set('dx-adapter.query.contains', 'LIKE');
47+
$app->config->set('dx-adapter.query.contains', 'like');
4848
}
4949

5050
protected function getPackageProviders($app)

0 commit comments

Comments
 (0)