Skip to content

Commit

Permalink
Added different ways to selected columns.
Browse files Browse the repository at this point in the history
  • Loading branch information
gent-fella-health committed Oct 30, 2020
1 parent 9096db7 commit 0b7c85b
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 16 deletions.
31 changes: 23 additions & 8 deletions src/Controllers/LaravelController.php
Original file line number Diff line number Diff line change
Expand Up @@ -74,17 +74,29 @@ protected function parseSort(array $sort)
/**
* Parse selects.
*
* @param array $selects
*
* @param string|array $selects
* @return array
*/
protected function parseSelects(array $selects)
protected function parseSelects($selects)
{
if (count($selects)) {
return explode(',', $selects[0]);
if (is_null($selects)) {
return null;
}

return [];
$return = [];

if (is_array($selects)) {
foreach ($selects as $select) {
$allSelects = explode(',', $select);
foreach ($allSelects as $select) {
$return[] = $select;
}
}

return $return;
}

return explode(',', $selects);
}

/**
Expand Down Expand Up @@ -234,7 +246,8 @@ protected function parseResourceOptions($request = null)
}

$this->defaults = array_merge([
'selects' => [],
'selects' => null,
'select' => null,
'includes' => [],
'include' => null,
'withCount' => [],
Expand All @@ -251,7 +264,8 @@ protected function parseResourceOptions($request = null)
'append' => [],
], $this->defaults);

$selects = $this->parseSelects($request->get('select', $this->defaults['selects']));
$selects = $this->parseSelects($request->get('selects', $this->defaults['selects']));
$select = $this->parseSelects($request->get('select', $this->defaults['select']));
$includes = $this->parseIncludes($request->get('includes', $this->defaults['includes']));
$modes = $this->parseModes($request->get('modeIds', []), $request->get('modeSideload', []));
$include = $this->parseInclude($request->get('include', $this->defaults['include']));
Expand All @@ -268,6 +282,7 @@ protected function parseResourceOptions($request = null)
$append = $request->get('append', $this->defaults['append']);

$data = [
'select' => $select,
'selects' => $selects,
'includes' => $includes,
'include' => $include,
Expand Down
13 changes: 5 additions & 8 deletions src/Database/EloquentBuilderTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,11 @@ protected function applyResourceOptions(Builder $queryBuilder, array $options =

extract($options);

if (isset($selects)) {
if (!is_array($selects)) {
throw new InvalidArgumentException('Selects should be an array.');
}

if (count($selects)) {
$queryBuilder->select(array_unique($selects));
}
if (isset($selects) && $selects) {
$queryBuilder->select($selects);
}
if (isset($select) && $select) {
$queryBuilder->select($select);
}

if (isset($includes)) {
Expand Down

0 comments on commit 0b7c85b

Please sign in to comment.