Skip to content

Commit e7280f1

Browse files
authored
Merge pull request #79 from one2tek/2.x
Merge 2.x to Master
2 parents 58f63e4 + 072bf0c commit e7280f1

4 files changed

Lines changed: 37 additions & 3 deletions

File tree

docs/_sidebar.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,4 +59,5 @@
5959
- Advanced Usage
6060
- [Quick start](advanced_usage.md?id=avanced_usage)
6161
- [Custom Sort](advanced_usage.md?id=custom-sort)
62-
- [Custom Filter](advanced_usage.md?id=custom-filter)
62+
- [Custom Filter](advanced_usage.md?id=custom-filter)
63+
- [Include Soft Deleted](advanced_usage.md?id=include-soft-deleted)

docs/advanced_usage.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,12 @@ public function filterName($queryBuilder, $method, $operator, $value, $clauseOpe
2222
{
2323
//
2424
}
25+
```
26+
27+
# Include Soft Deleted
28+
29+
By laravel soft deleted models will automatically be excluded from query results. However, you may force soft deleted models to be included in a query's results by calling the `withTrashed` parameter on the url:
30+
31+
```console
32+
{base_url}/users?withTrashed=1
2533
```

src/Controllers/LaravelController.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,19 @@ protected function parseOrderByRandom($value)
198198
return $value;
199199
}
200200

201+
/**
202+
* Parse with trashed.
203+
*
204+
* @param string $value
205+
* @return bool
206+
*/
207+
protected function parseWithTrashed($value)
208+
{
209+
$value = $value ? filter_var($value, FILTER_VALIDATE_BOOLEAN) : false;
210+
211+
return $value;
212+
}
213+
201214
/**
202215
* Parse filters.
203216
*
@@ -342,7 +355,8 @@ protected function parseResourceOptions($request = null)
342355
'append' => null,
343356
'sortByDesc' => null,
344357
'sortByAsc' => null,
345-
'orderByRandom' => false
358+
'orderByRandom' => false,
359+
'withTrashed' => false
346360
], $this->defaults);
347361

348362
$selects = $this->parseSelects($request->get('selects', $this->defaults['selects']));
@@ -365,6 +379,7 @@ protected function parseResourceOptions($request = null)
365379
$sortByDesc = $this->parseSortByDesc($request->get('sortByDesc', $this->defaults['sortByDesc']));
366380
$sortByAsc = $this->parseSortByAsc($request->get('sortByAsc', $this->defaults['sortByAsc']));
367381
$orderByRandom = $this->parseOrderByRandom($request->get('orderByRandom', $this->defaults['orderByRandom']));
382+
$withTrashed = $this->parseWithTrashed($request->get('withTrashed', $this->defaults['withTrashed']));
368383

369384
$data = [
370385
'select' => $select,
@@ -386,7 +401,8 @@ protected function parseResourceOptions($request = null)
386401
'append' => $append,
387402
'sortByDesc' => $sortByDesc,
388403
'sortByAsc' => $sortByAsc,
389-
'orderByRandom' => $orderByRandom
404+
'orderByRandom' => $orderByRandom,
405+
'withTrashed' => $withTrashed
390406
];
391407

392408
$this->validateResourceOptions($data);

src/Database/EloquentBuilderTrait.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ protected function applyResourceOptions(Builder $queryBuilder, array $options =
8888
$this->applyOrderByRandom($queryBuilder, $orderByRandom);
8989
}
9090

91+
if( (isset($withTrashed) && $withTrashed)) {
92+
$this->applyWithTrashed($queryBuilder);
93+
}
94+
9195
return $queryBuilder;
9296
}
9397

@@ -149,6 +153,11 @@ protected function applyOrderByRandom(Builder $queryBuilder, bool $orderByRaw)
149153
$queryBuilder->orderByRaw('RAND()');
150154
}
151155

156+
protected function applyWithTrashed(Builder $queryBuilder)
157+
{
158+
$queryBuilder->withTrashed();
159+
}
160+
152161
protected function applyHas(Builder $queryBuilder, array $relations = [])
153162
{
154163
foreach ($relations as $relation) {

0 commit comments

Comments
 (0)