diff --git a/src/Handler/Concerns/SavesData.php b/src/Handler/Concerns/SavesData.php index b233dcd..2dd6c97 100644 --- a/src/Handler/Concerns/SavesData.php +++ b/src/Handler/Concerns/SavesData.php @@ -132,12 +132,18 @@ trait SavesData $value = &$data[$field->location][$name]; - if ($field instanceof Schema\HasOne) { - $value = $this->getModelForIdentifier($request, $value['data']); - } elseif ($field instanceof Schema\HasMany) { - $value = array_map(function ($identifier) use ($request) { - return $this->getModelForIdentifier($request, $identifier); - }, $value['data']); + if ($field instanceof Schema\Relationship) { + $value = $value['data']; + + if ($value) { + if ($field instanceof Schema\HasOne) { + $value = $this->getModelForIdentifier($request, $value); + } elseif ($field instanceof Schema\HasMany) { + $value = array_map(function ($identifier) use ($request) { + return $this->getModelForIdentifier($request, $identifier); + }, $value); + } + } } } } diff --git a/src/Handler/Index.php b/src/Handler/Index.php index 47de1eb..e94ed04 100644 --- a/src/Handler/Index.php +++ b/src/Handler/Index.php @@ -81,7 +81,7 @@ class Index implements RequestHandlerInterface $paginationLinks[] = new Link\PrevLink($this->buildUrl($request, $params)); } - if ($schema->countable) { + if ($schema->countable && $schema->paginate) { $total = $adapter->count($query); $members[] = new Meta('total', $total);