Файл: vendor/laravel/framework/src/Illuminate/Http/Resources/JsonApi/AnonymousResourceCollection.php
Строк: 122
<?php
namespace IlluminateHttpResourcesJsonApi;
use IlluminateContainerContainer;
use IlluminateHttpJsonResponse;
use IlluminateHttpRequest;
use IlluminateHttpResourcesJsonAnonymousResourceCollection as BaseAnonymousResourceCollection;
use IlluminateSupportArr;
class AnonymousResourceCollection extends BaseAnonymousResourceCollection
{
use ConcernsResolvesJsonApiRequest;
/**
* Get any additional data that should be returned with the resource array.
*
* @param IlluminateHttpRequest $request
* @return array
*/
#[Override]
public function with($request)
{
return array_filter([
'included' => $this->collection
->map(fn ($resource) => $resource->resolveIncludedResourceObjects($request))
->flatten(depth: 1)
->uniqueStrict('_uniqueKey')
->map(fn ($included) => Arr::except($included, ['_uniqueKey']))
->values()
->all(),
...($implementation = JsonApiResource::$jsonApiInformation)
? ['jsonapi' => $implementation]
: [],
]);
}
/**
* Transform the resource into a JSON array.
*
* @param IlluminateHttpRequest $request
* @return array
*/
#[Override]
public function toAttributes(Request $request)
{
return $this->collection
->map(fn ($resource) => $resource->resolveResourceData($request))
->all();
}
/**
* Customize the outgoing response for the resource.
*
* @param IlluminateHttpRequest $request
* @param IlluminateHttpJsonResponse $response
* @return void
*/
#[Override]
public function withResponse(Request $request, JsonResponse $response): void
{
$response->header('Content-Type', 'application/vnd.api+json');
}
/**
* Create an HTTP response that represents the object.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpJsonResponse
*/
#[Override]
public function toResponse($request)
{
return parent::toResponse($this->resolveJsonApiRequestFrom($request));
}
/**
* Resolve the HTTP request instance from container.
*
* @return IlluminateHttpResourcesJsonApiJsonApiRequest
*/
#[Override]
protected function resolveRequestFromContainer()
{
return $this->resolveJsonApiRequestFrom(Container::getInstance()->make('request'));
}
}