Вход Регистрация
Файл: 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(depth1)
                ->
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 $requestJsonResponse $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'));
    }
}
Онлайн: 1
Реклама