/** * Create Fractal Resource * * @param $data * @param $transformer * @param $model * @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\Item */ private function createResource($data, $transformer, $model) { if ($data instanceof LengthAwarePaginator) { $resource = new \League\Fractal\Resource\Collection($data->getCollection(), $transformer, snake_case(str_plural($model))); $resource->setPaginator(new IlluminatePaginatorAdapter($data)); if (config('ember.ember-cli-pagination')) { $resource->setMetaValue('page', $data->currentPage()); $resource->setMetaValue('per_page', $data->perPage()); $resource->setMetaValue('total', $data->lastPage()); } return $resource; } else { if ($data instanceof Collection) { return new \League\Fractal\Resource\Collection($data, $transformer, snake_case(str_plural($model))); } } return new \League\Fractal\Resource\Item($data, $transformer, snake_case($model)); }