diff --git a/src/generator/default/transformer.php b/src/generator/default/transformer.php index 6847e514..486627ec 100644 --- a/src/generator/default/transformer.php +++ b/src/generator/default/transformer.php @@ -36,10 +36,14 @@ public function transform(dbModel->getClassName()?> $model) public function includegetCamelName()?>(dbModel->getClassName()?> $model) { $relation = $model->getName())?>; - $transformer = new getClassName())?>Transformer(); isHasOne()):?> + if ($relation === null) { + return $this->null(); + } + $transformer = new getClassName())?>Transformer(); return $this->item($relation, $transformer, 'makeResourceKey($relation->getClassKey())?>'); + $transformer = new getClassName())?>Transformer(); return $this->collection($relation, $transformer, 'makeResourceKey($relation->getClassKey())?>'); } diff --git a/tests/specs/blog_jsonapi/transformers/CommentTransformer.php b/tests/specs/blog_jsonapi/transformers/CommentTransformer.php index 0e378d1b..a00f08de 100644 --- a/tests/specs/blog_jsonapi/transformers/CommentTransformer.php +++ b/tests/specs/blog_jsonapi/transformers/CommentTransformer.php @@ -17,6 +17,9 @@ public function transform(Comment $model) public function includePost(Comment $model) { $relation = $model->post; + if ($relation === null) { + return $this->null(); + } $transformer = new PostTransformer(); return $this->item($relation, $transformer, 'posts'); } @@ -24,6 +27,9 @@ public function includePost(Comment $model) public function includeUser(Comment $model) { $relation = $model->user; + if ($relation === null) { + return $this->null(); + } $transformer = new UserTransformer(); return $this->item($relation, $transformer, 'users'); } diff --git a/tests/specs/blog_jsonapi/transformers/PostTransformer.php b/tests/specs/blog_jsonapi/transformers/PostTransformer.php index c352ed45..48bccb05 100644 --- a/tests/specs/blog_jsonapi/transformers/PostTransformer.php +++ b/tests/specs/blog_jsonapi/transformers/PostTransformer.php @@ -17,6 +17,9 @@ public function transform(Post $model) public function includeCategory(Post $model) { $relation = $model->category; + if ($relation === null) { + return $this->null(); + } $transformer = new CategoryTransformer(); return $this->item($relation, $transformer, 'categories'); } @@ -24,6 +27,9 @@ public function includeCategory(Post $model) public function includeAuthor(Post $model) { $relation = $model->author; + if ($relation === null) { + return $this->null(); + } $transformer = new UserTransformer(); return $this->item($relation, $transformer, 'users'); }