diff --git a/src/Controllers/LaravelController.php b/src/Controllers/LaravelController.php index 9e6f1f9..55ef7c7 100644 --- a/src/Controllers/LaravelController.php +++ b/src/Controllers/LaravelController.php @@ -235,6 +235,7 @@ protected function parseResourceOptions($request = null) 'withCount' => [], 'withs' => [], 'has' => [], + 'doesntHave' => [], 'exludeGlobalScopes' => [], 'scope' => [], 'sort' => [], @@ -251,6 +252,7 @@ protected function parseResourceOptions($request = null) $withCount = $this->parseWithCount($request->get('withCount', $this->defaults['withCount'])); $withs = $request->get('with', $this->defaults['withs']); $has = $request->get('has', $this->defaults['has']); + $doesntHave = $request->get('doesntHave', $this->defaults['doesntHave']); $exludeGlobalScopes = $this->parseExludeGlobalScopes($request->get('exludeGlobalScopes', $this->defaults['exludeGlobalScopes'])); $scope = $request->get('scope', $this->defaults['scope']); $sort = $this->parseSort($request->get('sort', $this->defaults['sort'])); @@ -266,6 +268,7 @@ protected function parseResourceOptions($request = null) 'withCount' => $withCount, 'withs' => $withs, 'has' => $has, + 'doesntHave' => $doesntHave, 'exludeGlobalScopes' => $exludeGlobalScopes, 'modes' => $includes['modes'], 'scope' => $scope, diff --git a/src/Database/EloquentBuilderTrait.php b/src/Database/EloquentBuilderTrait.php index 6057986..596ca4a 100644 --- a/src/Database/EloquentBuilderTrait.php +++ b/src/Database/EloquentBuilderTrait.php @@ -74,6 +74,12 @@ protected function applyResourceOptions(Builder $queryBuilder, array $options = $queryBuilder->has($relation); } } + + if (isset($doesntHave)) { + foreach ($doesntHave as $relation) { + $queryBuilder->doesntHave($relation); + } + } if (isset($exludeGlobalScopes)) { if (!is_array($exludeGlobalScopes)) {