ResourceCollection
class ResourceCollection extends JsonResource implements Countable, IteratorAggregate
Traits
Properties
| static protected array<class-string, bool> | $cachedPreserveKeysAttributes | The cached preserve keys attribute values. |
from ConditionallyLoadsAttributes |
| static protected array | $macros | The registered string macros. |
from Macroable |
| mixed | $resource | The resource instance. |
from JsonResource |
| array | $with | The additional data that should be added to the top-level resource array. |
from JsonResource |
| array | $additional | The additional metadata that should be added to the resource response. |
from JsonResource |
| static string|null | $wrap | The "data" wrapper that should be applied. |
from JsonResource |
| static bool | $forceWrapping | Whether to force wrapping even if the $wrap key exists in underlying resource data. |
from JsonResource |
| static protected array<class-string, class-string|false> | $cachedCollectsAttributes | The cached Collects attribute values. |
from CollectsResources |
| string|null | $collects | The resource that this resource collects. |
|
| Collection|null | $collection | The mapped collection instance. |
|
| protected bool | $preserveAllQueryParameters | Indicates if all existing request query parameters should be added to pagination links. |
|
| protected array|null | $queryParameters | The query parameters that should be added to the pagination links. |
Methods
Filter the given data, removing any optional values.
Merge the given data in at the given index.
Remove the missing values from the filtered data.
Retrieve a value if the given "condition" is truthy.
Retrieve a value if the given "condition" is falsy.
Merge a value if the given condition is truthy.
Merge a value unless the given condition is truthy.
Merge the given attributes.
Retrieve an attribute if it exists on the resource.
Retrieve a model attribute if it is null.
Retrieve a model attribute if it is not null.
Retrieve an accessor when it has been appended.
Retrieve a relationship if it has been loaded.
Retrieve a relationship count if it exists.
Retrieve a relationship aggregated value if it exists.
Retrieve a relationship existence check if it exists.
Execute a callback if the given pivot table has been loaded.
Execute a callback if the given pivot table with a custom accessor has been loaded.
Determine if the resource has the specified pivot table loaded.
Determine if the resource has the specified pivot table loaded with a custom accessor.
Transform the given value if it is present.
Forward a method call to the given object.
Forward a method call to the given object, returning $this if the forwarded call returned itself.
Throw a bad method call exception for the given method.
Mix another object into the class.
Dynamically handle calls to the class.
Dynamically handle calls to the class.
Retrieve the model for a bound value.
Retrieve the model for a bound value.
Set the value for a given offset.
Determine if an attribute exists on the resource.
Dynamically get properties from the underlying resource.
Create a new resource instance.
Create a new anonymous resource collection.
Create a new resource collection instance.
Convert the resource to pretty print formatted JSON.
Add additional metadata to the resource response.
Get the JSON serialization options that should be applied to the resource response.
Resolve the HTTP request instance from container.
Set the string that should wrap the outer-most resource array.
Map the given collection resource into its individual resources.
Indicate that all current query parameters should be appended to pagination links.
Specify the query string parameters that should be present on pagination links.
Return the count of items in the resource collection.
Details
in
ConditionallyLoadsAttributes at line 24
protected array
filter(array $data)
Filter the given data, removing any optional values.
in
ConditionallyLoadsAttributes at line 57
protected array
mergeData(array $data, int $index, array $merge, bool $numericKeys)
Merge the given data in at the given index.
in
ConditionallyLoadsAttributes at line 74
protected array
removeMissingValues(array $data)
Remove the missing values from the filtered data.
in
ConditionallyLoadsAttributes at line 111
protected mixed
when(bool $condition, mixed $value, mixed $default = new MissingValue())
Retrieve a value if the given "condition" is truthy.
in
ConditionallyLoadsAttributes at line 125
mixed
unless(bool $condition, mixed $value, mixed $default = new MissingValue())
Retrieve a value if the given "condition" is falsy.
in
ConditionallyLoadsAttributes at line 137
protected mixed
merge(mixed $value)
Merge a value into the array.
in
ConditionallyLoadsAttributes at line 147
protected mixed
mergeWhen(bool $condition, mixed $value, mixed $default = new MissingValue())
Merge a value if the given condition is truthy.
in
ConditionallyLoadsAttributes at line 161
protected mixed
mergeUnless(bool $condition, mixed $value, mixed $default = new MissingValue())
Merge a value unless the given condition is truthy.
in
ConditionallyLoadsAttributes at line 171
protected MergeValue
attributes(array $attributes)
Merge the given attributes.
in
ConditionallyLoadsAttributes at line 183
mixed
whenHas(string $attribute, mixed $value = null, mixed $default = new MissingValue())
Retrieve an attribute if it exists on the resource.
in
ConditionallyLoadsAttributes at line 199
protected mixed
whenNull(mixed $value, mixed $default = new MissingValue())
Retrieve a model attribute if it is null.
in
ConditionallyLoadsAttributes at line 211
protected mixed
whenNotNull(mixed $value, mixed $default = new MissingValue())
Retrieve a model attribute if it is not null.
in
ConditionallyLoadsAttributes at line 223
protected mixed
whenAppended(string $attribute, mixed $value = null, mixed $default = new MissingValue())
Retrieve an accessor when it has been appended.
in
ConditionallyLoadsAttributes at line 237
protected mixed
whenLoaded(string $relationship, mixed $value = null, mixed $default = new MissingValue())
Retrieve a relationship if it has been loaded.
in
ConditionallyLoadsAttributes at line 265
mixed
whenCounted(string $relationship, mixed $value = null, mixed $default = new MissingValue())
Retrieve a relationship count if it exists.
in
ConditionallyLoadsAttributes at line 293
mixed
whenAggregated(string $relationship, string $column, string $aggregate, mixed $value = null, mixed $default = new MissingValue())
Retrieve a relationship aggregated value if it exists.
in
ConditionallyLoadsAttributes at line 321
mixed
whenExistsLoaded(string $relationship, mixed $value = null, mixed $default = new MissingValue())
Retrieve a relationship existence check if it exists.
in
ConditionallyLoadsAttributes at line 345
protected mixed
whenPivotLoaded(string $table, mixed $value, mixed $default = new MissingValue())
Execute a callback if the given pivot table has been loaded.
in
ConditionallyLoadsAttributes at line 355
protected mixed
whenPivotLoadedAs(string $accessor, string $table, mixed $value, mixed $default = new MissingValue())
Execute a callback if the given pivot table with a custom accessor has been loaded.
in
ConditionallyLoadsAttributes at line 367
protected bool
hasPivotLoaded(string $table)
Determine if the resource has the specified pivot table loaded.
in
ConditionallyLoadsAttributes at line 375
protected bool
hasPivotLoadedAs(string $accessor, string $table)
Determine if the resource has the specified pivot table loaded with a custom accessor.
in
ConditionallyLoadsAttributes at line 385
protected mixed
transform(mixed $value, callable $callback, mixed $default = new MissingValue())
Transform the given value if it is present.
in
ForwardsCalls at line 22
protected mixed
forwardCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object.
in
ForwardsCalls at line 52
protected mixed
forwardDecoratedCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object, returning $this if the forwarded call returned itself.
in
ForwardsCalls at line 66
static protected never
throwBadMethodCallException(string $method)
Throw a bad method call exception for the given method.
in
Macroable at line 28
static void
macro(string $name, callable|object $macro)
Register a custom macro.
Boot-only. Macros persist in a static property for the worker lifetime and apply to every subsequent call on the macroable class.
in
Macroable at line 41
static void
mixin(object $mixin, bool $replace = true)
Mix another object into the class.
Boot-only. Delegates to macro() for each method; registered macros persist in a static property for the worker lifetime.
in
Macroable at line 57
static bool
hasMacro(string $name)
Check if macro is registered.
in
Macroable at line 68
static void
flushMacros()
Flush the existing macros.
Boot or tests only. Clears worker-wide macros; concurrent coroutines may resolve different methods depending on timing.
in
Macroable at line 78
static mixed
__callStatic(string $method, array $parameters)
Dynamically handle calls to the class.
in
Macroable at line 103
mixed
__call(string $method, array $parameters)
Dynamically handle calls to the class.
in
DelegatesToResource at line 21
mixed
getRouteKey()
Get the value of the resource's route key.
in
DelegatesToResource at line 29
string
getRouteKeyName()
Get the route key for the resource.
in
DelegatesToResource at line 39
never
resolveRouteBinding(mixed $value, string|null $field = null)
Retrieve the model for a bound value.
in
DelegatesToResource at line 49
Model|null
resolveChildRouteBinding(string $childType, mixed $value, string|null $field = null)
Retrieve the model for a bound value.
in
DelegatesToResource at line 57
bool
offsetExists(mixed $offset)
Determine if the given attribute exists.
in
DelegatesToResource at line 65
mixed
offsetGet(mixed $offset)
Get the value for a given offset.
in
DelegatesToResource at line 73
void
offsetSet(mixed $offset, mixed $value)
Set the value for a given offset.
in
DelegatesToResource at line 81
void
offsetUnset(mixed $offset)
Unset the value for a given offset.
in
DelegatesToResource at line 89
bool
__isset(string $key)
Determine if an attribute exists on the resource.
in
DelegatesToResource at line 97
void
__unset(string $key)
Unset an attribute on the resource.
in
DelegatesToResource at line 105
mixed
__get(string $key)
Dynamically get properties from the underlying resource.
at line 44
__construct(mixed $resource)
Create a new resource instance.
in
JsonResource at line 65
static JsonResource
make(mixed ...$parameters)
Create a new resource instance.
in
JsonResource at line 73
static AnonymousResourceCollection
collection(mixed $resource)
Create a new anonymous resource collection.
in
JsonResource at line 93
static protected AnonymousResourceCollection
newCollection(mixed $resource)
Create a new resource collection instance.
in
JsonResource at line 101
array
resolve(Request|null $request = null)
Resolve the resource to an array.
in
JsonResource at line 119
array|Arrayable|JsonSerializable
toAttributes(Request $request)
Transform the resource into an array.
in
JsonResource at line 131
array|Arrayable|JsonSerializable
resolveResourceData(Request $request)
Resolve the resource data to an array.
at line 84
array|Arrayable|JsonSerializable
toArray(Request $request)
Transform the resource into a JSON array.
in
JsonResource at line 155
string
toJson(int $options = 0)
Convert the resource to JSON.
in
JsonResource at line 171
string
toPrettyJson(int $options = 0)
Convert the resource to pretty print formatted JSON.
in
JsonResource at line 179
array
with(Request $request)
Get any additional data that should be returned with the resource array.
in
JsonResource at line 187
JsonResource
additional(array $data)
Add additional metadata to the resource response.
in
CollectsResources at line 90
int
jsonOptions()
Get the JSON serialization options that should be applied to the resource response.
in
JsonResource at line 205
void
withResponse(Request $request, JsonResponse $response)
Customize the response for a request.
in
JsonResource at line 212
protected Request
resolveRequestFromContainer()
Resolve the HTTP request instance from container.
in
JsonResource at line 224
static void
wrap(string $value)
Set the string that should wrap the outer-most resource array.
Boot-only. The wrap value persists in a static property for the worker lifetime and applies to every resource serialization across all coroutines.
in
JsonResource at line 236
static void
withoutWrapping()
Disable wrapping of the outer-most resource array.
Boot-only. The wrap value persists in a static property for the worker lifetime and applies to every resource serialization across all coroutines.
in
JsonResource at line 244
JsonResponse
response(Request|null $request = null)
Transform the resource into an HTTP response.
at line 97
Response
toResponse(Request $request)
Create an HTTP response that represents the object.
in
JsonResource at line 262
array
jsonSerialize()
Prepare the resource for JSON serialization.
in
JsonResource at line 270
static void
flushState()
Flush all static state.
in
CollectsResources at line 30
protected mixed
collectResource(mixed $resource)
Map the given collection resource into its individual resources.
in
CollectsResources at line 56
protected string|null
collects()
Get the resource that this resource collects.
in
CollectsResources at line 106
Traversable
getIterator()
Get an iterator for the resource collection.
at line 54
ResourceCollection
preserveQuery()
Indicate that all current query parameters should be appended to pagination links.
at line 64
ResourceCollection
withQuery(array $query)
Specify the query string parameters that should be present on pagination links.
at line 76
int
count()
Return the count of items in the resource collection.
at line 109
protected JsonResponse
preparePaginatedResponse(Request $request)
Create a paginate-aware HTTP response.