ResolvesJsonApiElements
trait ResolvesJsonApiElements
Constants
| protected DEFAULT_MAX_RELATIONSHIP_DEPTH |
The default maximum relationship depth. |
Properties
| protected bool | $usesRequestQueryString | Determine whether resources respect sparse fieldsets from the request. |
|
| protected bool | $includesPreviouslyLoadedRelationships | Determine whether included relationship for the resource from eager loaded relationship. |
|
| protected null|array<int, string> | $requestedRelationships | The requested relationships for the resource. |
|
| null|JsonApiResource, 1: string, 2: string, 3: bool}> | $loadedRelationshipsMap | Cached loaded relationships map. |
|
| protected array | $loadedRelationshipIdentifiers | Cached loaded relationship identifiers. |
|
| static protected array<class-string, bool> | $loadsRelationshipsByDefault | Whether each resource class uses the default relationship loader. |
|
| static int | $maxRelationshipDepth | The maximum relationship depth. |
Methods
Specify the maximum relationship depth.
Resolve the resource's attributes.
Resolve relationships for the resource's data object.
Compile resource relations.
Load the requested relationships that are missing on the given models at once.
Load the requested relationships that are missing on the given related models.
Determine whether the resource uses the framework's default relationship loader.
Get the requested relationships for this resource or one of its relationships.
Get the declared resolvers for the requested resource relationships.
Load requested relationships in batches before serializing their attributes.
Resolve included resources and preserve linkage when combining duplicate identities.
Merge relationship linkage without discarding descendants of duplicate resources.
Resolve the meta information for the resource.
Indicate that attributes should respect the request's sparse fieldsets.
Indicate that attributes should ignore the request's sparse fieldsets.
Indicate that relationship should include loaded relationships.
Details
at line 87
static void
maxRelationshipDepth(int $depth)
Specify the maximum relationship depth.
The depth limit persists in a static property for the worker lifetime and affects every subsequent JSON:API resource resolution.
at line 96
protected array
resolveResourceObject(JsonApiRequest $request)
Resolve data for the resource.
at line 119
string
resolveResourceIdentifier(JsonApiRequest $request)
Resolve the resource's identifier.
at line 143
string
resolveResourceType(JsonApiRequest $request)
Resolve the resource's type.
at line 171
protected array
resolveResourceAttributes(JsonApiRequest $request, string $resourceType)
Resolve the resource's attributes.
at line 199
protected array
resolveResourceRelationshipIdentifiers(JsonApiRequest $request)
Resolve relationships for the resource's data object.
at line 218
protected void
compileResourceRelationships(JsonApiRequest $request)
Compile resource relationships.
at line 249
protected Generator
compileResourceRelationshipUsingResolver(JsonApiRequest $request, mixed $resource, RelationResolver $relationResolver, Collection|Model|null $relatedModels)
Compile resource relations.
at line 344
void
loadMissingRequestedRelationshipsOn(JsonApiRequest $request, Collection $models)
| internal |
Load the requested relationships that are missing on the given models at once.
at line 364
protected void
loadMissingRequestedRelationships(JsonApiRequest $request, Collection $relatedModels, string|null $resourceClass, array $requestedRelationships)
Load the requested relationships that are missing on the given related models.
Collection loading starts on the first resource with every root model, then recurses with each nested batch. Overrides must apply constraints to the supplied models, which may belong to different parents.
at line 413
bool
usesDefaultRelationshipLoading()
| internal |
Determine whether the resource uses the framework's default relationship loader.
at line 421
protected array
requestedResourceRelationships(JsonApiRequest $request, string|null $relationName = null)
Get the requested relationships for this resource or one of its relationships.
at line 454
protected Collection
getResourceRelationships(JsonApiRequest $request)
Get the declared resolvers for the requested resource relationships.
at line 468
static void
prepareResourceRelationships(Collection $resources, JsonApiRequest $request)
| internal |
Load requested relationships in batches before serializing their attributes.
at line 520
Collection
resolveIncludedResourceObjects(JsonApiRequest $request)
Resolve included for the resource.
at line 584
static array
resolveIncludedResources(Collection $resources, JsonApiRequest $request)
| internal |
Resolve included resources and preserve linkage when combining duplicate identities.
at line 638
static protected void
mergeResourceRelationships(array $relationships, array $additional, array $identifiers)
Merge relationship linkage without discarding descendants of duplicate resources.
at line 692
protected array
resolveResourceLinks(JsonApiRequest $request)
Resolve the links for the resource.
at line 702
protected array
resolveResourceMetaInformation(JsonApiRequest $request)
Resolve the meta information for the resource.
at line 712
ResolvesJsonApiElements
respectFieldsAndIncludesInQueryString(bool $value = true)
Indicate that attributes should respect the request's sparse fieldsets.
at line 724
ResolvesJsonApiElements
ignoreFieldsAndIncludesInQueryString()
Indicate that attributes should ignore the request's sparse fieldsets.
at line 734
ResolvesJsonApiElements
includePreviouslyLoadedRelationships()
Indicate that relationship should include loaded relationships.