Pivot
class Pivot extends Model
Traits
Provides the ability to transform a model to a JSON resource.
Constants
| protected IGNORE_ON_TOUCH_CONTEXT_KEY |
Context key for storing models that should ignore touch. |
| protected BROADCASTING_CONTEXT_KEY |
Context key for storing whether broadcasting is enabled. |
| protected EVENTS_DISABLED_CONTEXT_KEY |
Context key for storing whether events are disabled. |
| UNGUARDED_CONTEXT_KEY |
Context key for storing whether mass assignment is unguarded. |
| CREATED_AT |
The name of the "created at" column. |
| UPDATED_AT |
The name of the "updated at" column. |
Properties
| protected array<string, mixed> | $attributes | The model's attributes. |
from HasAttributes |
| protected array<string, mixed> | $original | The model attribute's original state. |
from HasAttributes |
| protected array<string, mixed> | $changes | The changed model attributes. |
from HasAttributes |
| protected array<string, mixed> | $previous | The previous state of the changed model attributes. |
from HasAttributes |
| protected array<string, string> | $casts | The attributes that should be cast. |
from HasAttributes |
| protected array | $classCastCache | The attributes that have been cast using custom classes. |
from HasAttributes |
| protected array | $attributeCastCache | The attributes that have been cast using "Attribute" return type mutators. |
from HasAttributes |
| protected array|null | $mergedCastsCache | The cached merged casts array for this instance. |
from HasAttributes |
| protected array | $castMetadataCache | The cached results of cast metadata predicate methods for this instance. |
from HasAttributes |
| static protected string[] | $primitiveCastTypes | The built-in, primitive cast types supported by Eloquent. |
from HasAttributes |
| protected string|null | $dateFormat | The storage format of the model's date columns. |
from HasAttributes |
| protected array | $appends | The accessors to append to the model's array form. |
from HasAttributes |
| static bool | $snakeAttributes | Indicates whether attributes are snake cased on arrays. |
from HasAttributes |
| static protected array | $mutatorCache | The cache of the mutated attributes for each class. |
from HasAttributes |
| static protected array | $attributeMutatorCache | The cache of the "Attribute" return type marked mutated attributes for each class. |
from HasAttributes |
| static protected array | $getAttributeMutatorCache | The cache of the "Attribute" return type marked mutated, gettable attributes for each class. |
from HasAttributes |
| static protected array | $setAttributeMutatorCache | The cache of the "Attribute" return type marked mutated, settable attributes for each class. |
from HasAttributes |
| static protected array | $casterCache | The cache of the resolved custom caster class instances. |
from HasAttributes |
| static protected array | $castTypeCache | The cache of the converted cast types. |
from HasAttributes |
| static Encrypter|null | $encrypter | The encrypter instance that is used to encrypt attributes. |
from HasAttributes |
| protected array<string, class-string> | $dispatchesEvents | The event map for the model. |
from HasEvents |
| protected string[] | $observables | User exposed observable events. |
from HasEvents |
| protected array | $relations | The loaded relationships for the model. |
from HasRelationships |
| protected array | $touches | The relationships that should be touched on save. |
from HasRelationships |
| protected Closure|null | $relationAutoloadCallback | The relationship autoloader callback. |
from HasRelationships |
| protected mixed | $relationAutoloadContext | The relationship autoloader callback context. |
from HasRelationships |
| static string[] | $manyMethods | The many to many relationship methods. |
from HasRelationships |
| static protected array | $relationResolvers | The relation resolver callbacks. |
from HasRelationships |
| bool | $timestamps | Indicates if the model should be timestamped. |
from HasTimestamps |
| bool | $usesUniqueIds | Indicates if the model uses unique ids. |
from HasUniqueIds |
| $hidden | The attributes that should be hidden for serialization. |
from HidesAttributes | |
| protected array<int, string> | $visible | The attributes that should be visible in serialization. |
from HidesAttributes |
| protected array<int, string> | $fillable | The attributes that are mass assignable. |
from GuardsAttributes |
| protected string[] | $guarded | The attributes that aren't mass assignable. |
|
| static protected array<class-string, list<string>> | $guardableColumns | The actual columns that exist on the database and can be guarded. |
from GuardsAttributes |
| static protected TCollection>> | $resolvedCollectionClasses | The resolved collection class names by model. |
from HasCollection |
| protected UnitEnum|string|null | $connection | The connection name for the model. |
from Model |
| protected string|null | $table | The table associated with the model. |
from Model |
| protected string | $primaryKey | The primary key for the model. |
from Model |
| protected string | $keyType | The "type" of the primary key ID. |
from Model |
| bool | $incrementing | Indicates if the IDs are auto-incrementing. |
|
| protected array<int, string> | $with | The relations to eager load on every query. |
from Model |
| protected array<int, string> | $withCount | The relationship counts that should be eager loaded on every query. |
from Model |
| bool | $preventsLazyLoading | Indicates whether lazy loading will be prevented on this model. |
from Model |
| protected int | $perPage | The number of models to return for pagination. |
from Model |
| bool | $exists | Indicates if the model exists. |
from Model |
| bool | $wasRecentlyCreated | Indicates if the model was inserted during the object's lifecycle. |
from Model |
| protected bool | $escapeWhenCastingToString | Indicates that the object's string representation should be escaped when __toString is invoked. |
from Model |
| static protected ConnectionResolverInterface|null | $resolver | The connection resolver instance. |
from Model |
| static protected Dispatcher|null | $dispatcher | The event dispatcher instance. |
from Model |
| static protected array<class-string<self>, int> | $booting | The coroutine currently booting each model. |
from Model |
| static protected array<class-string<self>, bool> | $booted | The array of booted models. |
from Model |
| static protected Closure>> | $bootedCallbacks | The callbacks that should be executed after the model has booted. |
from Model |
| static protected array<class-string<self>, array<int, string>> | $traitInitializers | The array of trait initializers that will be called on each new instance. |
from Model |
| static protected Closure|Scope>> | $globalScopes | The array of global scopes on the model. |
from Model |
| static protected bool | $modelsShouldPreventLazyLoading | Indicates whether lazy loading should be restricted on all models. |
from Model |
| static protected bool | $modelsShouldAutomaticallyEagerLoadRelationships | Indicates whether relations should be automatically loaded on all models when they are accessed. |
from Model |
| static protected null|callable(self, string): void | $lazyLoadingViolationCallback | The callback that is responsible for handling lazy loading violations. |
from Model |
| static protected bool | $modelsShouldPreventSilentlyDiscardingAttributes | Indicates if an exception should be thrown instead of silently discarding non-fillable attributes. |
from Model |
| static protected null|callable(self, array): void | $discardedAttributeViolationCallback | The callback that is responsible for handling discarded attribute violations. |
from Model |
| static protected bool | $modelsShouldPreventAccessingMissingAttributes | Indicates if an exception should be thrown when trying to access a missing attribute on a retrieved model. |
from Model |
| static protected null|callable(self, string): void | $missingAttributeViolationCallback | The callback that is responsible for handling missing attribute violations. |
from Model |
| static protected Builder<mixed>> | $builder | The Eloquent query builder class to use for the model. |
from Model |
| static protected Collection<mixed, mixed>> | $collectionClass | The Eloquent collection class to use for the model. |
from Model |
| static protected Builder<static>>|false> | $resolvedBuilderClasses | Cache of resolved custom builder classes per model. |
from Model |
| static protected array<string, null|object> | $classAttributes | Cache of resolved class attributes. |
from Model |
| static protected array<class-string<self>, bool> | $isSoftDeletable | Cache of soft deletable models. |
from Model |
| static protected array<class-string<self>, bool> | $isPrunable | Cache of prunable models. |
from Model |
| static protected array<class-string<self>, bool> | $isMassPrunable | Cache of mass prunable models. |
from Model |
| Model|null | $pivotParent | The parent model of the relationship. |
from AsPivot |
| Model|null | $pivotRelated | The related model of the relationship. |
from AsPivot |
| protected string | $foreignKey | The name of the foreign key column. |
from AsPivot |
| protected string | $relatedKey | The name of the "other key" column. |
from AsPivot |
Methods
Add the date attributes to the attributes array.
Add the mutated attributes to the attributes array.
Add the casted attributes to the attributes array.
Get an attribute array of all arrayable attributes.
Get an attribute array of all arrayable values.
Determine whether an attribute exists on the model.
Either throw a missing attribute exception or return null depending on Eloquent's configuration.
Get an attribute from the $attributes array.
Determine if the given key is a relationship method on the model.
Get a relationship value from a method.
Determine if a get mutator exists for an attribute.
Determine if a "Attribute" return type marked mutator exists for an attribute.
Determine if a "Attribute" return type marked get mutator exists for an attribute.
Determine if any get mutator exists for an attribute.
Get the value of an attribute using its mutator.
Get the value of an "Attribute" return type marked attribute using its mutator.
Get the value of an attribute using its mutator for array conversion.
Merge new casts with existing casts on the model.
Ensure that the given casts are strings.
Cast an attribute to a native PHP type.
Cast the given attribute using a custom cast class.
Cast the given attribute to an enum.
Increment or decrement the given attribute using the custom cast class.
Serialize the given attribute using the custom cast class.
Compare two values for the given attribute using the custom cast class.
Determine if the cast type is a custom date time cast.
Determine if the cast type is an immutable custom date time cast.
Set a given attribute on the model.
Determine if a set mutator exists for an attribute.
Determine if an "Attribute" return type marked set mutator exists for an attribute.
Set the value of an attribute using its mutator.
Set the value of a "Attribute" return type marked attribute using its mutator.
Determine if the given attribute is a date or date castable.
Set a given JSON attribute on the model.
Set the value of a class castable attribute.
Set the value of an enum castable attribute.
Get an enum case instance from a given class and value.
Get the storable value from the given enum.
Get an array attribute with the given key and value set.
Get an array attribute or return an empty array if it is not set.
Cast the given attribute to JSON.
Get the JSON casting flags for the given attribute.
Encode the given value as JSON.
Decode the given JSON back into an array or object.
Cast the given attribute to an encrypted string.
Set the encrypter instance that will be used to encrypt attributes.
Get the current encrypter being used by the model.
Cast the given attribute to a hashed string.
Return a timestamp as DateTime object with time set to 00:00:00.
Determine if the given value is a standard date format.
Set the date format used by the model.
Determine whether an attribute should be cast to a native type.
Determine whether a value is Date / DateTime castable for inbound manipulation.
Determine whether a value is Date / DateTime custom-castable for inbound manipulation.
Determine whether a value is JSON castable for inbound manipulation.
Determine whether a value is an encrypted castable for inbound manipulation.
Determine if the given key is cast using a custom class.
Determine if the given key is cast using an enum.
Determine if the key is deviable using a custom class.
Determine if the key is serializable using a custom class.
Determine if the key is comparable using a custom class.
Resolve the custom caster class for a given key.
Parse the given caster class, removing any arguments.
Merge the cast class and attribute cast attributes back into the model.
Merge the cast class and attribute cast attribute back into the model.
Merge the cast class attributes back into the model.
Merge the cast class attribute back into the model.
Merge the cast class attributes back into the model.
Merge the cast class attribute back into the model.
Normalize the response from a custom class caster.
Get all of the current attributes on the model for an insert operation.
Set the array of model attributes. No checking is done.
Get the model's original attribute values.
Get the model's original attribute values.
Get the model's raw original attribute values.
Sync a single original attribute with its current value.
Sync multiple original attribute with their current values.
Determine if the model or any of the given attribute(s) have been modified.
Determine if the model or all the given attribute(s) have remained the same.
Discard attribute changes and reset the attributes to their original state.
Determine if the model or any of the given attribute(s) were changed when the model was last saved.
Determine if any of the given attributes were changed when the model was last saved.
Get the attributes that have been changed since the last sync for an update operation.
Get the attributes that were changed when the model was last saved.
Get the attributes that were previously original before the model was last saved.
Determine if the new and old values for a given key are equivalent.
Transform a raw model value using mutators, casts, etc.
Append attributes to query when building a query.
Set the accessors to append to model arrays.
Merge new appended attributes with existing appended attributes on the model.
Return whether the accessor attribute has been appended.
Extract and cache all the mutated attributes of a class.
Get all of the attribute mutator methods.
Get all of the "Attribute" return typed attribute mutator methods.
Resolve the observe class names from the attributes.
Register a single observer with the model.
Remove an observable event name.
Register a model event with the dispatcher.
Fire the given event for the model.
Fire a custom model event for the given event.
Register a retrieved model event with the dispatcher.
Register a saving model event with the dispatcher.
Register an updating model event with the dispatcher.
Register an updated model event with the dispatcher.
Register a creating model event with the dispatcher.
Register a created model event with the dispatcher.
Register a replicating model event with the dispatcher.
Register a deleting model event with the dispatcher.
Register a deleted model event with the dispatcher.
Execute a callback without firing any model events for any model type.
Determine if model events are currently disabled for this coroutine.
Boot the has global scopes trait for a model.
Resolve the global scope class names from the attributes.
Register a new global scope on the model.
Register multiple global scopes on the model.
Get all of the global scopes that are currently registered.
Get the dynamic relation resolver if defined or inherited, or return null.
Determine if a relationship autoloader callback has been defined.
Define an automatic relationship autoloader callback for this model and its relations.
Attempt to autoload the given relationship using the autoload callback.
Invoke the relationship autoloader callback for the given relationships.
Propagate the relationship autoloader callback to the given related models.
Define a one-to-one relationship.
Instantiate a new HasOne relationship.
Define a has-one-through relationship.
Instantiate a new HasOneThrough relationship.
Define a polymorphic one-to-one relationship.
Instantiate a new MorphOne relationship.
Define an inverse one-to-one or many relationship.
Instantiate a new BelongsTo relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Define a polymorphic, inverse one-to-one or many relationship.
Instantiate a new MorphTo relationship.
Retrieve the actual class name for a given morph class.
Create a pending has-many-through or has-one-through relationship.
Define a one-to-many relationship.
Instantiate a new HasMany relationship.
Define a has-many-through relationship.
Instantiate a new HasManyThrough relationship.
Define a polymorphic one-to-many relationship.
Instantiate a new MorphMany relationship.
Define a many-to-many relationship.
Instantiate a new BelongsToMany relationship.
Define a polymorphic many-to-many relationship.
Instantiate a new MorphToMany relationship.
Define a polymorphic, inverse many-to-many relationship.
Get the relationship name of the belongsToMany relationship.
Get the joining table name for a many-to-many relation.
Get this model's half of the intermediate table name for belongsToMany relationships.
Determine if the model touches a given relation.
Get the polymorphic relationship columns.
Create a new model instance for a related model.
Create a new model instance for a related "through" model.
Set the given relationship on the model.
Set the entire relations array on the model.
Enable relationship autoloading for this model.
Duplicate the instance and unset all the loaded relations.
Duplicate the instance and unset the given loaded relations.
Unset all the loaded relations for the instance.
Set the relationships that are touched on save.
Update the model's update timestamp.
Update the model's update timestamp without raising any events.
Set the value of the "created at" attribute.
Set the value of the "updated at" attribute.
Get the fully qualified "created at" column.
Get the fully qualified "updated at" column.
Disable timestamps for the current class during the given callback scope.
Disable timestamps for the given model classes during the given callback scope.
Determine if the given model is ignoring timestamps / touches.
Set the hidden attributes for the model.
Merge new hidden attributes with existing hidden attributes on the model.
Set the visible attributes for the model.
Merge new visible attributes with existing visible attributes on the model.
Make the given, typically hidden, attributes visible.
Make the given, typically hidden, attributes visible if the given truth test passes.
Make the given, typically visible, attributes hidden.
Make the given, typically visible, attributes hidden if the given truth test passes.
Set the fillable attributes for the model.
Merge new fillable attributes with existing fillable attributes on the model.
Set the guarded attributes for the model.
Merge new guarded attributes with existing guarded attributes on the model.
Disable all mass assignable restrictions.
Run the given callable while being unguarded.
Determine if the given attribute may be mass assigned.
Determine if the given column is a valid, guardable column.
Get the fillable attributes of a given array.
Prevent a method from being called multiple times on the same object within the same call stack.
Remove an entry from the recursion cache for an object.
Get the stack of methods being called recursively for the current object.
Get the current recursion cache being used by the model.
Set a value in the recursion cache for the given object and method.
Create a new resource object for the given resource.
Guess the resource class name for the model.
Get the resource class from the UseResource attribute.
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.
Create a new Eloquent Collection instance.
Resolve the collection class name from the CollectedBy attribute.
Clear the list of booted models so they will be re-booted.
Disables relationship model touching for the current class during given callback scope.
Disables relationship model touching for the given model classes during given callback scope.
Determine if the given model is ignoring touches.
Indicate that models should prevent lazy loading, silently discarding attributes, and accessing missing attributes.
Prevent model relationships from being lazy loaded.
Determine if model relationships should be automatically eager loaded when accessed.
Register a callback that is responsible for handling lazy loading violations.
Prevent non-fillable attributes from being silently discarded.
Register a callback that is responsible for handling discarded attribute violations.
Prevent accessing missing attributes on retrieved models.
Register a callback that is responsible for handling missing attribute violations.
Execute a callback without broadcasting any model events for all model types.
Fill the model with an array of attributes. Force mass assignment.
Create a new instance of the given model.
Create a new model instance that is existing.
Begin querying the model on a given connection.
Get all of the models from the database.
Eager load relationships on the polymorphic relation of a model.
Eager load relations on the model if they are not already eager loaded.
Eager load relation's column aggregations on the model.
Eager load relation max column values on the model.
Eager load relation min column values on the model.
Eager load relation's column summations on the model.
Eager load relation average column values on the model.
Eager load related model existence values on the model.
Eager load relationship column aggregation on the polymorphic relation of a model.
Eager load relationship counts on the polymorphic relation of a model.
Eager load relationship max column values on the polymorphic relation of a model.
Eager load relationship min column values on the polymorphic relation of a model.
Eager load relationship column summations on the polymorphic relation of a model.
Eager load relationship average column values on the polymorphic relation of a model.
Increment a column's value by a given amount.
Decrement a column's value by a given amount.
Run the increment or decrement method on the model.
Update the model in the database.
Update the model in the database within a transaction.
Update the model in the database without raising any events.
Increment a column's value by a given amount without raising any events.
Decrement a column's value by a given amount without raising any events.
Increment each given column's value by the given amounts.
Decrement each given column's value by the given amounts.
Increment each given column's value by the given amounts without raising any events.
Decrement each given column's value by the given amounts without raising any events.
Run the incrementEach or decrementEach method on the model.
Save the model and all of its relationships without raising any events to the parent model.
Save the model to the database without raising any events.
Save the model to the database, ignoring specific unique constraint conflicts.
Save the model to the database within a transaction.
Perform any actions that are necessary after the model is saved.
Perform a model insert operation, ignoring specific unique constraint conflicts.
Insert the given attributes and set the ID on the model.
Force a hard destroy on a soft deleted model.
Get a new query builder that doesn't have any global scopes or eager loading.
Get a new query builder with no relationships loaded.
Get a new query builder that doesn't have any global scopes.
Get a new query to restore one or more models by their queueable IDs.
Resolve the custom Eloquent builder class from the model attributes.
Create a new pivot model instance.
Apply the given named scope if possible.
Determine if the given method has a scope attribute.
Convert the model instance to pretty print formatted JSON.
Reload a fresh model instance from the database.
Clone the model into a new, non-existing instance without raising any events.
Set the connection associated with the model.
Resolve a connection instance.
Get the connection resolver instance.
Resolve an attribute from the model class or its parents.
Retrieve the model for a bound value.
Retrieve the model for a bound value.
Retrieve the child model for a bound value.
Retrieve the child model for a bound value.
Retrieve the child model query for a bound value.
Retrieve the child route model binding relationship name for the given child type.
Retrieve the model for a bound value.
Determine if relationships are being automatically eager loaded when accessed.
Determine if discarding guarded attribute fills is disabled.
Determine if accessing missing attributes is disabled.
Get the broadcast channel route definition that is associated with the given entity.
Get the broadcast channel name that is associated with the given entity.
Handle dynamic method calls into the model.
Handle dynamic static method calls into the model.
Indicate that the object's string representation should be escaped when __toString is invoked.
Create a new pivot model instance.
Create a new pivot model from raw values returned from a query.
Set the key names for the pivot model instance.
Determine if the pivot model or given attributes has timestamp attributes.
Get a new query to restore multiple models by their queueable IDs.
Details
in
HasAttributes at line 208
protected void
initializeHasAttributes()
Initialize the trait.
in
HasAttributes at line 233
array
attributesToArray()
Convert the model's attributes to an array.
in
HasAttributes at line 271
protected array
addDateAttributesToArray(array $attributes)
Add the date attributes to the attributes array.
in
HasAttributes at line 293
protected array
addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)
Add the mutated attributes to the attributes array.
in
HasAttributes at line 322
protected array
addCastAttributesToArray(array $attributes, array $mutatedAttributes)
Add the casted attributes to the attributes array.
in
HasAttributes at line 376
protected array
getArrayableAttributes()
Get an attribute array of all arrayable attributes.
in
HasAttributes at line 384
protected array
getArrayableAppends()
Get all of the appendable values that are arrayable.
in
HasAttributes at line 398
array
relationsToArray()
Get the model's relationships in array form.
in
HasAttributes at line 440
protected array
getArrayableRelations()
Get an attribute array of all arrayable relations.
in
HasAttributes at line 448
protected array
getArrayableItems(array $values)
Get an attribute array of all arrayable values.
in
HasAttributes at line 464
bool
hasAttribute(string $key)
Determine whether an attribute exists on the model.
in
HasAttributes at line 480
mixed
getAttribute(string $key)
Get an attribute from the model.
in
HasAttributes at line 510
protected mixed
throwMissingAttributeExceptionIfApplicable(string $key)
Either throw a missing attribute exception or return null depending on Eloquent's configuration.
in
HasAttributes at line 528
mixed
getAttributeValue(string $key)
Get a plain attribute (not a relationship).
in
HasAttributes at line 536
protected mixed
getAttributeFromArray(string $key)
Get an attribute from the $attributes array.
in
HasAttributes at line 546
mixed
getRelationValue(string $key)
Get a relationship.
in
HasAttributes at line 576
bool
isRelation(string $key)
Determine if the given key is a relationship method on the model.
in
HasAttributes at line 589
protected mixed
handleLazyLoadingViolation(string $key)
Handle a lazy loading violation.
in
HasAttributes at line 607
protected mixed
getRelationshipFromMethod(string $method)
Get a relationship value from a method.
in
HasAttributes at line 635
bool
hasGetMutator(string $key)
Determine if a get mutator exists for an attribute.
in
HasAttributes at line 643
bool
hasAttributeMutator(string $key)
Determine if a "Attribute" return type marked mutator exists for an attribute.
in
HasAttributes at line 663
bool
hasAttributeGetMutator(string $key)
Determine if a "Attribute" return type marked get mutator exists for an attribute.
in
HasAttributes at line 679
bool
hasAnyGetMutator(string $key)
Determine if any get mutator exists for an attribute.
in
HasAttributes at line 687
protected mixed
mutateAttribute(string $key, mixed $value)
Get the value of an attribute using its mutator.
in
HasAttributes at line 697
protected mixed
mutateAttributeMarkedAttribute(string $key, mixed $value)
Get the value of an "Attribute" return type marked attribute using its mutator.
in
HasAttributes at line 723
protected mixed
mutateAttributeForArray(string $key, mixed $value)
Get the value of an attribute using its mutator for array conversion.
in
HasAttributes at line 744
HasAttributes
mergeCasts(array $casts)
Merge new casts with existing casts on the model.
in
HasAttributes at line 758
protected void
flushCastCaches()
Flush the per-instance cast metadata caches.
in
HasAttributes at line 767
protected array
ensureCastsAreStringValues(array $casts)
Ensure that the given casts are strings.
in
HasAttributes at line 799
protected mixed
castAttribute(string $key, mixed $value)
Cast an attribute to a native PHP type.
in
HasAttributes at line 867
protected mixed
getClassCastableAttributeValue(string $key, mixed $value)
Cast the given attribute using a custom cast class.
in
HasAttributes at line 894
protected mixed
getEnumCastableAttributeValue(string $key, mixed $value)
Cast the given attribute to an enum.
in
HasAttributes at line 912
protected string
getCastType(string $key)
Get the type of cast for a model attribute.
in
HasAttributes at line 942
protected mixed
deviateClassCastableAttribute(string $method, string $key, mixed $value)
Increment or decrement the given attribute using the custom cast class.
in
HasAttributes at line 955
protected mixed
serializeClassCastableAttribute(string $key, mixed $value)
Serialize the given attribute using the custom cast class.
in
HasAttributes at line 968
protected bool
compareClassCastableAttribute(string $key, mixed $original, mixed $value)
Compare two values for the given attribute using the custom cast class.
in
HasAttributes at line 981
protected bool
isCustomDateTimeCast(string $cast)
Determine if the cast type is a custom date time cast.
in
HasAttributes at line 990
protected bool
isImmutableCustomDateTimeCast(string $cast)
Determine if the cast type is an immutable custom date time cast.
in
HasAttributes at line 999
protected bool
isDecimalCast(string $cast)
Determine if the cast type is a decimal cast.
in
HasAttributes at line 1007
mixed
setAttribute(string|int $key, mixed $value)
Set a given attribute on the model.
in
HasAttributes at line 1076
bool
hasSetMutator(string $key)
Determine if a set mutator exists for an attribute.
in
HasAttributes at line 1084
bool
hasAttributeSetMutator(string $key)
Determine if an "Attribute" return type marked set mutator exists for an attribute.
in
HasAttributes at line 1107
protected mixed
setMutatedAttributeValue(string $key, mixed $value)
Set the value of an attribute using its mutator.
in
HasAttributes at line 1117
protected mixed
setAttributeMarkedMutatedAttributeValue(string $key, mixed $value)
Set the value of a "Attribute" return type marked attribute using its mutator.
in
HasAttributes at line 1147
protected bool
isDateAttribute(string $key)
Determine if the given attribute is a date or date castable.
in
HasAttributes at line 1156
HasAttributes
fillJsonAttribute(string $key, mixed $value)
Set a given JSON attribute on the model.
in
HasAttributes at line 1180
protected void
setClassCastableAttribute(string $key, mixed $value)
Set the value of a class castable attribute.
in
HasAttributes at line 1208
protected void
setEnumCastableAttribute(string $key, mixed $value)
Set the value of an enum castable attribute.
in
HasAttributes at line 1229
protected mixed
getEnumCaseFromValue(string $enumClass, string|int $value)
Get an enum case instance from a given class and value.
in
HasAttributes at line 1241
protected string|int
getStorableEnumValue(string $expectedEnum, mixed $value)
Get the storable value from the given enum.
in
HasAttributes at line 1253
protected array
getArrayAttributeWithValue(string $path, string $key, mixed $value)
Get an array attribute with the given key and value set.
in
HasAttributes at line 1263
protected array
getArrayAttributeByKey(string $key)
Get an array attribute or return an empty array if it is not set.
in
HasAttributes at line 1279
protected string
castAttributeAsJson(string $key, mixed $value)
Cast the given attribute to JSON.
in
HasAttributes at line 1297
protected int
getJsonCastFlags(string $key)
Get the JSON casting flags for the given attribute.
in
HasAttributes at line 1311
protected string|false
asJson(mixed $value, int $flags = 0)
Encode the given value as JSON.
in
HasAttributes at line 1319
mixed
fromJson(string|null $value, bool $asObject = false)
Decode the given JSON back into an array or object.
in
HasAttributes at line 1331
mixed
fromEncryptedString(string $value)
Decrypt the given encrypted string.
in
HasAttributes at line 1339
protected string
castAttributeAsEncryptedString(string $key, mixed $value)
Cast the given attribute to an encrypted string.
in
HasAttributes at line 1350
static void
encryptUsing(Encrypter|null $encrypter)
Set the encrypter instance that will be used to encrypt attributes.
Boot-only. The encrypter persists in a static property for the worker lifetime and is used by every encrypted attribute across all coroutines.
in
HasAttributes at line 1358
static Encrypter
currentEncrypter()
Get the current encrypter being used by the model.
in
HasAttributes at line 1366
protected string|null
castAttributeAsHashedString(string $key, mixed $value)
Cast the given attribute to a hashed string.
in
HasAttributes at line 1387
float
fromFloat(mixed $value)
Decode the given float.
in
HasAttributes at line 1400
protected string
asDecimal(float|string $value, int $decimals)
Return a decimal as string.
in
HasAttributes at line 1412
protected CarbonInterface
asDate(mixed $value)
Return a timestamp as DateTime object with time set to 00:00:00.
in
HasAttributes at line 1420
protected CarbonInterface
asDateTime(mixed $value)
Return a timestamp as DateTime object.
in
HasAttributes at line 1471
protected bool
isStandardDateFormat(string $value)
Determine if the given value is a standard date format.
in
HasAttributes at line 1479
string|null
fromDateTime(mixed $value)
Convert a DateTime to a storable string.
in
HasAttributes at line 1489
protected int
asTimestamp(mixed $value)
Return a timestamp as unix timestamp.
in
HasAttributes at line 1497
protected string
serializeDate(DateTimeInterface $date)
Prepare a date for array / JSON serialization.
in
HasAttributes at line 1509
array
getDates()
Get the attributes that should be converted to dates.
in
HasAttributes at line 1520
string
getDateFormat()
Get the format for database stored dates.
in
HasAttributes at line 1528
HasAttributes
setDateFormat(string $format)
Set the date format used by the model.
in
HasAttributes at line 1538
bool
hasCast(string $key, array|string|null $types = null)
Determine whether an attribute should be cast to a native type.
in
HasAttributes at line 1550
array
getCasts()
Get the attributes that should be cast.
in
HasAttributes at line 1567
protected array
casts()
Get the attributes that should be cast.
in
HasAttributes at line 1575
protected bool
isDateCastable(string $key)
Determine whether a value is Date / DateTime castable for inbound manipulation.
in
HasAttributes at line 1583
protected bool
isDateCastableWithCustomFormat(string $key)
Determine whether a value is Date / DateTime custom-castable for inbound manipulation.
in
HasAttributes at line 1591
protected bool
isJsonCastable(string $key)
Determine whether a value is JSON castable for inbound manipulation.
in
HasAttributes at line 1599
protected bool
isEncryptedCastable(string $key)
Determine whether a value is an encrypted castable for inbound manipulation.
in
HasAttributes at line 1609
protected bool
isClassCastable(string $key)
Determine if the given key is cast using a custom class.
in
HasAttributes at line 1637
protected bool
isEnumCastable(string $key)
Determine if the given key is cast using an enum.
in
HasAttributes at line 1667
protected bool
isClassDeviable(string $key)
Determine if the key is deviable using a custom class.
in
HasAttributes at line 1687
protected bool
isClassSerializable(string $key)
Determine if the key is serializable using a custom class.
in
HasAttributes at line 1697
protected bool
isClassComparable(string $key)
Determine if the key is comparable using a custom class.
in
HasAttributes at line 1707
protected mixed
resolveCasterClass(string $key)
Resolve the custom caster class for a given key.
in
HasAttributes at line 1743
static void
flushCasterCache()
Flush the caster cache for the model.
Boot or tests only. Clears the worker-wide caster instance cache shared by every coroutine; next attribute access rebuilds the casters.
in
HasAttributes at line 1751
protected string
parseCasterClass(string $class)
Parse the given caster class, removing any arguments.
in
HasAttributes at line 1761
protected void
mergeAttributesFromCachedCasts()
Merge the cast class and attribute cast attributes back into the model.
in
HasAttributes at line 1770
protected void
mergeAttributeFromCachedCasts(string $key)
Merge the cast class and attribute cast attribute back into the model.
in
HasAttributes at line 1779
protected void
mergeAttributesFromClassCasts()
Merge the cast class attributes back into the model.
in
HasAttributes at line 1789
protected void
mergeAttributeFromClassCasts(string $key)
Merge the cast class attribute back into the model.
in
HasAttributes at line 1809
protected void
mergeAttributesFromAttributeCasts()
Merge the cast class attributes back into the model.
in
HasAttributes at line 1819
protected void
mergeAttributeFromAttributeCasts(string $key)
Merge the cast class attribute back into the model.
in
HasAttributes at line 1848
protected array
normalizeCastClassResponse(string $key, mixed $value)
Normalize the response from a custom class caster.
in
HasAttributes at line 1858
array
getAttributes()
Get all of the current attributes on the model.
in
HasAttributes at line 1868
protected array
getAttributesForInsert()
Get all of the current attributes on the model for an insert operation.
in
HasAttributes at line 1876
HasAttributes
setRawAttributes(array $attributes, bool $sync = false)
Set the array of model attributes. No checking is done.
in
HasAttributes at line 1895
mixed
getOriginal(string|null $key = null, mixed $default = null)
Get the model's original attribute values.
in
HasAttributes at line 1908
protected mixed
getOriginalWithoutRewindingModel(string|null $key = null, mixed $default = null)
Get the model's original attribute values.
in
HasAttributes at line 1927
mixed
getRawOriginal(string|null $key = null, mixed $default = null)
Get the model's raw original attribute values.
in
HasAttributes at line 1938
array
only(mixed $attributes)
Get a subset of the model's attributes.
in
HasAttributes at line 1954
array
except(mixed $attributes)
Get all attributes except the given ones.
in
HasAttributes at line 1972
HasAttributes
syncOriginal()
Sync the original attributes with the current.
in
HasAttributes at line 1982
HasAttributes
syncOriginalAttribute(string $attribute)
Sync a single original attribute with its current value.
in
HasAttributes at line 1992
HasAttributes
syncOriginalAttributes(array|string $attributes)
Sync multiple original attribute with their current values.
in
HasAttributes at line 2008
HasAttributes
syncChanges()
Sync the changed attributes.
in
HasAttributes at line 2021
bool
isDirty(array|string|null $attributes = null)
Determine if the model or any of the given attribute(s) have been modified.
in
HasAttributes at line 2034
bool
isClean(array|string|null $attributes = null)
Determine if the model or all the given attribute(s) have remained the same.
in
HasAttributes at line 2042
HasAttributes
discardChanges()
Discard attribute changes and reset the attributes to their original state.
in
HasAttributes at line 2057
bool
wasChanged(array|string|null $attributes = null)
Determine if the model or any of the given attribute(s) were changed when the model was last saved.
in
HasAttributes at line 2071
protected bool
hasChanges(array $changes, array|string|null $attributes = null)
Determine if any of the given attributes were changed when the model was last saved.
in
HasAttributes at line 2097
array
getDirty()
Get the attributes that have been changed since the last sync.
in
HasAttributes at line 2115
protected array
getDirtyForUpdate()
Get the attributes that have been changed since the last sync for an update operation.
in
HasAttributes at line 2125
array
getChanges()
Get the attributes that were changed when the model was last saved.
in
HasAttributes at line 2135
array
getPrevious()
Get the attributes that were previously original before the model was last saved.
in
HasAttributes at line 2143
bool
originalIsEquivalent(string $key)
Determine if the new and old values for a given key are equivalent.
in
HasAttributes at line 2204
protected mixed
transformModelValue(string $key, mixed $value)
Transform a raw model value using mutators, casts, etc.
in
HasAttributes at line 2246
HasAttributes
append(array|string $attributes)
Append attributes to query when building a query.
in
HasAttributes at line 2258
array
getAppends()
Get the accessors that are being appended to model arrays.
in
HasAttributes at line 2266
HasAttributes
setAppends(array $appends)
Set the accessors to append to model arrays.
in
HasAttributes at line 2278
HasAttributes
mergeAppends(array $appends)
Merge new appended attributes with existing appended attributes on the model.
in
HasAttributes at line 2292
bool
hasAppended(string $attribute)
Return whether the accessor attribute has been appended.
in
HasAttributes at line 2300
HasAttributes
withoutAppends()
Remove all appended properties from the model.
in
HasAttributes at line 2308
array
getMutatedAttributes()
Get the mutated attributes for a given instance.
in
HasAttributes at line 2320
static void
cacheMutatedAttributes(object|string $classOrInstance)
Extract and cache all the mutated attributes of a class.
in
HasAttributes at line 2339
static protected array
getMutatorMethods(mixed $class)
Get all of the attribute mutator methods.
in
HasAttributes at line 2349
static protected array
getAttributeMarkedMutatorMethods(mixed $class)
Get all of the "Attribute" return typed attribute mutator methods.
in
HasEvents at line 40
static void
bootHasEvents()
Boot the has event trait for a model.
in
HasEvents at line 56
static array
resolveObserveAttributes()
Resolve the observe class names from the attributes.
in
HasEvents at line 87
static void
observe(object|array|string $classes)
Register observers with the model.
Boot-only. Observer listeners are registered on the worker-wide event dispatcher and persist for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 103
protected void
registerObserver(object|string $class)
Register a single observer with the model.
in
HasEvents at line 143
array
getObservableEvents()
Get the observable event names.
in
HasEvents at line 161
HasEvents
setObservableEvents(array $observables)
Set the observable event names.
in
HasEvents at line 173
void
addObservableEvents(array|string $observables)
Add an observable event name.
in
HasEvents at line 186
void
removeObservableEvents(array|string $observables)
Remove an observable event name.
in
HasEvents at line 199
static protected void
registerModelEvent(string $event, mixed $callback)
Register a model event with the dispatcher.
in
HasEvents at line 211
protected mixed
fireModelEvent(string $event, bool $halt = true)
Fire the given event for the model.
in
HasEvents at line 241
protected mixed
fireCustomModelEvent(string $event, string $method)
Fire a custom model event for the given event.
in
HasEvents at line 259
protected mixed
filterModelEventResults(mixed $result)
Filter the model event results.
in
HasEvents at line 277
static void
retrieved(mixed $callback)
Register a retrieved model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 291
static void
saving(mixed $callback)
Register a saving model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 305
static void
saved(mixed $callback)
Register a saved model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 319
static void
updating(mixed $callback)
Register an updating model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 333
static void
updated(mixed $callback)
Register an updated model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 347
static void
creating(mixed $callback)
Register a creating model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 361
static void
created(mixed $callback)
Register a created model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 375
static void
replicating(mixed $callback)
Register a replicating model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 389
static void
deleting(mixed $callback)
Register a deleting model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 403
static void
deleted(mixed $callback)
Register a deleted model event with the dispatcher.
Boot-only. Listener persists on the worker-wide event dispatcher for the worker lifetime; runtime use leaks listeners across every subsequent request.
in
HasEvents at line 414
static void
flushEventListeners()
Remove all the event listeners for the model.
Boot or tests only. Removes listeners from the worker-wide event dispatcher; concurrent coroutines lose model events mid-request.
in
HasEvents at line 436
array
dispatchesEvents()
Get the event map for the model.
in
HasEvents at line 447
static Dispatcher|null
getEventDispatcher()
Get the event dispatcher instance.
Returns a NullDispatcher when events are disabled (inside withoutEvents()) to ensure manual dispatch() calls are also suppressed, matching Laravel behavior.
in
HasEvents at line 462
static void
setEventDispatcher(Dispatcher $dispatcher)
Set the event dispatcher instance.
Boot-only. The dispatcher persists in a static property for the worker lifetime and is used by every model event firing across all coroutines.
in
HasEvents at line 473
static void
unsetEventDispatcher()
Unset the event dispatcher for models.
Tests only. Clears the worker-wide event dispatcher shared by every coroutine; concurrent model operations will not fire events.
in
HasEvents at line 489
static mixed
withoutEvents(callable $callback)
Execute a callback without firing any model events for any model type.
Uses Context for coroutine-safe event disabling, ensuring concurrent requests don't interfere with each other's event handling.
in
HasEvents at line 504
static bool
eventsDisabled()
Determine if model events are currently disabled for this coroutine.
in
HasGlobalScopes at line 22
static void
bootHasGlobalScopes()
Boot the has global scopes trait for a model.
in
HasGlobalScopes at line 30
static array
resolveGlobalScopeAttributes()
Resolve the global scope class names from the attributes.
in
HasGlobalScopes at line 67
static mixed
addGlobalScope(Scope|Closure|string $scope, Scope|Closure|null $implementation = null)
Register a new global scope on the model.
Boot-only. The scope persists in a static property for the worker lifetime and applies to every query for this model class across all coroutines.
in
HasGlobalScopes at line 91
static void
addGlobalScopes(array $scopes)
Register multiple global scopes on the model.
Boot-only. Delegates to addGlobalScope() per entry; each scope persists in a static property for the worker lifetime.
in
HasGlobalScopes at line 105
static bool
hasGlobalScope(Scope|string $scope)
Determine if a model has a global scope.
in
HasGlobalScopes at line 115
static Scope|Closure|null
getGlobalScope(Scope|string $scope)
Get a global scope registered with the model.
in
HasGlobalScopes at line 130
static array
getAllGlobalScopes()
Get all of the global scopes that are currently registered.
in
HasGlobalScopes at line 142
static void
setAllGlobalScopes(array $scopes)
Set the current global scopes.
Boot or tests only. Replaces the worker-wide global scopes registry shared by every coroutine; per-request use changes scope behavior for every concurrent model query.
in
HasGlobalScopes at line 150
array
getGlobalScopes()
Get the global scopes for this class instance.
in
HasRelationships at line 70
void
initializeHasRelationships()
Initialize the HasRelationships trait.
in
HasRelationships at line 85
Closure|null
relationResolver(string $class, string $key)
Get the dynamic relation resolver if defined or inherited, or return null.
in
HasRelationships at line 105
static void
resolveRelationUsing(string $name, Closure $callback)
Define a dynamic relation resolver.
Boot-only. The resolver persists in a static property for the worker lifetime and runs on every relation resolution for this model class across all coroutines.
in
HasRelationships at line 116
bool
hasRelationAutoloadCallback()
Determine if a relationship autoloader callback has been defined.
in
HasRelationships at line 124
HasRelationships
autoloadRelationsUsing(Closure $callback, mixed $context = null)
Define an automatic relationship autoloader callback for this model and its relations.
in
HasRelationships at line 144
protected bool
attemptToAutoloadRelation(string $key)
Attempt to autoload the given relationship using the autoload callback.
in
HasRelationships at line 158
protected void
invokeRelationAutoloadCallbackFor(string $key, array $tuples)
Invoke the relationship autoloader callback for the given relationships.
in
HasRelationships at line 168
protected void
propagateRelationAutoloadCallbackToRelation(string $key, mixed $models)
Propagate the relationship autoloader callback to the given related models.
in
HasRelationships at line 197
HasOne
hasOne(string $related, string|null $foreignKey = null, string|null $localKey = null)
Define a one-to-one relationship.
in
HasRelationships at line 218
protected HasOne
newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasOne relationship.
in
HasRelationships at line 233
HasOneThrough
hasOneThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null, string|null $secondLocalKey = null)
Define a has-one-through relationship.
in
HasRelationships at line 264
protected HasOneThrough
newHasOneThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Instantiate a new HasOneThrough relationship.
in
HasRelationships at line 277
MorphOne
morphOne(string $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)
Define a polymorphic one-to-one relationship.
in
HasRelationships at line 298
protected MorphOne
newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey)
Instantiate a new MorphOne relationship.
in
HasRelationships at line 311
BelongsTo
belongsTo(string $related, string|null $foreignKey = null, string|null $ownerKey = null, string|null $relation = null)
Define an inverse one-to-one or many relationship.
in
HasRelationships at line 353
protected BelongsTo
newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation)
Instantiate a new BelongsTo relationship.
in
HasRelationships at line 363
MorphTo
morphTo(string|null $name = null, string|null $type = null, string|null $id = null, string|null $ownerKey = null)
Define a polymorphic, inverse one-to-one or many relationship.
in
HasRelationships at line 389
protected MorphTo
morphEagerTo(string $name, string $type, string $id, string|null $ownerKey)
Define a polymorphic, inverse one-to-one or many relationship.
in
HasRelationships at line 407
protected MorphTo
morphInstanceTo(string|int $target, string $name, string $type, string $id, string|null $ownerKey)
Define a polymorphic, inverse one-to-one or many relationship.
in
HasRelationships at line 433
protected MorphTo
newMorphTo(Builder $query, Model $parent, string $foreignKey, string|null $ownerKey, string $type, string $relation)
Instantiate a new MorphTo relationship.
in
HasRelationships at line 441
static string
getActualClassNameForMorph(string|int $class)
Retrieve the actual class name for a given morph class.
in
HasRelationships at line 449
protected string
guessBelongsToRelation()
Guess the "belongs to" relationship name.
in
HasRelationships at line 473
PendingHasThroughRelationship
through(string|HasOneOrMany $relationship)
Create a pending has-many-through or has-one-through relationship.
in
HasRelationships at line 491
HasMany
hasMany(string $related, string|null $foreignKey = null, string|null $localKey = null)
Define a one-to-many relationship.
in
HasRelationships at line 517
protected HasMany
newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasMany relationship.
in
HasRelationships at line 532
HasManyThrough
hasManyThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null, string|null $secondLocalKey = null)
Define a has-many-through relationship.
in
HasRelationships at line 563
protected HasManyThrough
newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Instantiate a new HasManyThrough relationship.
in
HasRelationships at line 576
MorphMany
morphMany(string $related, string $name, string|null $type = null, string|null $id = null, string|null $localKey = null)
Define a polymorphic one-to-many relationship.
in
HasRelationships at line 600
protected MorphMany
newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey)
Instantiate a new MorphMany relationship.
in
HasRelationships at line 614
BelongsToMany
belongsToMany(string $related, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)
Define a many-to-many relationship.
in
HasRelationships at line 669
protected BelongsToMany
newBelongsToMany(Builder $query, Model $parent, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null)
Instantiate a new BelongsToMany relationship.
in
HasRelationships at line 690
MorphToMany
morphToMany(string $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null, bool $inverse = false)
Define a polymorphic many-to-many relationship.
in
HasRelationships at line 747
protected MorphToMany
newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string|null $relationName = null, bool $inverse = false)
Instantiate a new MorphToMany relationship.
in
HasRelationships at line 781
MorphToMany
morphedByMany(string $related, string $name, string|null $table = null, string|null $foreignPivotKey = null, string|null $relatedPivotKey = null, string|null $parentKey = null, string|null $relatedKey = null, string|null $relation = null)
Define a polymorphic, inverse many-to-many relationship.
in
HasRelationships at line 814
protected string|null
guessBelongsToManyRelation()
Get the relationship name of the belongsToMany relationship.
in
HasRelationships at line 829
string
joiningTable(string $related, Model|null $instance = null)
Get the joining table name for a many-to-many relation.
in
HasRelationships at line 852
string
joiningTableSegment()
Get this model's half of the intermediate table name for belongsToMany relationships.
in
HasRelationships at line 860
bool
touches(string $relation)
Determine if the model touches a given relation.
in
HasRelationships at line 868
void
touchOwners()
Touch the owning relations of the model.
in
HasRelationships at line 890
protected array
getMorphs(string $name, string|null $type, string|null $id)
Get the polymorphic relationship columns.
in
HasRelationships at line 898
string
getMorphClass()
Get the class name for polymorphic relations.
in
HasRelationships at line 925
protected Model
newRelatedInstance(string $class)
Create a new model instance for a related model.
in
HasRelationships at line 942
protected Model
newRelatedThroughInstance(string $class)
Create a new model instance for a related "through" model.
in
HasRelationships at line 950
array
getRelations()
Get all the loaded relations for the instance.
in
HasRelationships at line 958
mixed
getRelation(string $relation)
Get a specified relationship.
in
HasRelationships at line 966
bool
relationLoaded(string $key)
Determine if the given relation is loaded.
in
HasRelationships at line 976
HasRelationships
setRelation(string $relation, mixed $value)
Set the given relationship on the model.
in
HasRelationships at line 990
HasRelationships
unsetRelation(string $relation)
Unset a loaded relationship.
in
HasRelationships at line 1002
HasRelationships
setRelations(array $relations)
Set the entire relations array on the model.
in
HasRelationships at line 1014
HasRelationships
withRelationshipAutoloading()
Enable relationship autoloading for this model.
in
HasRelationships at line 1024
HasRelationships
withoutRelations()
Duplicate the instance and unset all the loaded relations.
in
HasRelationships at line 1034
HasRelationships
withoutRelation(array|string $relations)
Duplicate the instance and unset the given loaded relations.
in
HasRelationships at line 1050
HasRelationships
unsetRelations()
Unset all the loaded relations for the instance.
in
HasRelationships at line 1060
array
getTouchedRelations()
Get the relationships that are touched on save.
in
HasRelationships at line 1070
HasRelationships
setTouchedRelations(array $touches)
Set the relationships that are touched on save.
in
HasTimestamps at line 30
void
initializeHasTimestamps()
Initialize the HasTimestamps trait.
in
HasTimestamps at line 50
bool
touch(array|string|null $attribute = null)
Update the model's update timestamp.
in
HasTimestamps at line 74
bool
touchQuietly(array|string|null $attribute = null)
Update the model's update timestamp without raising any events.
in
HasTimestamps at line 84
HasTimestamps
updateTimestamps()
Update the creation and update timestamps.
in
HasTimestamps at line 108
HasTimestamps
setCreatedAt(mixed $value)
Set the value of the "created at" attribute.
in
HasTimestamps at line 120
HasTimestamps
setUpdatedAt(mixed $value)
Set the value of the "updated at" attribute.
in
HasTimestamps at line 130
CarbonInterface
freshTimestamp()
Get a fresh timestamp for the model.
in
HasTimestamps at line 138
string
freshTimestampString()
Get a fresh timestamp for the model.
in
HasTimestamps at line 146
bool
usesTimestamps()
Determine if the model uses timestamps.
in
HasTimestamps at line 154
string|null
getCreatedAtColumn()
Get the name of the "created at" column.
in
HasTimestamps at line 162
string|null
getUpdatedAtColumn()
Get the name of the "updated at" column.
in
HasTimestamps at line 170
string|null
getQualifiedCreatedAtColumn()
Get the fully qualified "created at" column.
in
HasTimestamps at line 180
string|null
getQualifiedUpdatedAtColumn()
Get the fully qualified "updated at" column.
in
HasTimestamps at line 195
static mixed
withoutTimestamps(callable $callback)
Disable timestamps for the current class during the given callback scope.
in
HasTimestamps at line 209
static mixed
withoutTimestampsOn(array $models, callable $callback)
Disable timestamps for the given model classes during the given callback scope.
in
HasTimestamps at line 227
static bool
isIgnoringTimestamps(string|null $class = null)
Determine if the given model is ignoring timestamps / touches.
in
HasUniqueIds at line 17
bool
usesUniqueIds()
Determine if the model uses unique ids.
in
HasUniqueIds at line 25
void
setUniqueIds()
Generate unique keys for the model.
in
HasUniqueIds at line 37
string|null
newUniqueId()
Generate a new key for the model.
in
HasUniqueIds at line 47
array
uniqueIds()
Get the columns that should receive a unique identifier.
in
HidesAttributes at line 31
void
initializeHidesAttributes()
Initialize the HidesAttributes trait.
in
HidesAttributes at line 43
array
getHidden()
Get the hidden attributes for the model.
in
HidesAttributes at line 54
HidesAttributes
setHidden(array $hidden)
Set the hidden attributes for the model.
in
HidesAttributes at line 67
HidesAttributes
mergeHidden(array $hidden)
Merge new hidden attributes with existing hidden attributes on the model.
in
HidesAttributes at line 83
array
getVisible()
Get the visible attributes for the model.
in
HidesAttributes at line 94
HidesAttributes
setVisible(array $visible)
Set the visible attributes for the model.
in
HidesAttributes at line 107
HidesAttributes
mergeVisible(array $visible)
Merge new visible attributes with existing visible attributes on the model.
in
HidesAttributes at line 124
HidesAttributes
makeVisible(array|string|null $attributes)
Make the given, typically hidden, attributes visible.
in
HidesAttributes at line 143
HidesAttributes
makeVisibleIf(bool|Closure $condition, array|string|null $attributes)
Make the given, typically hidden, attributes visible if the given truth test passes.
in
HidesAttributes at line 154
HidesAttributes
makeHidden(array|string|null $attributes)
Make the given, typically visible, attributes hidden.
in
HidesAttributes at line 170
HidesAttributes
makeHiddenIf(bool|Closure $condition, array|string|null $attributes)
Make the given, typically visible, attributes hidden if the given truth test passes.
in
GuardsAttributes at line 39
void
initializeGuardsAttributes()
Initialize the GuardsAttributes trait.
in
GuardsAttributes at line 58
array
getFillable()
Get the fillable attributes for the model.
in
GuardsAttributes at line 68
GuardsAttributes
fillable(array $fillable)
Set the fillable attributes for the model.
in
GuardsAttributes at line 80
GuardsAttributes
mergeFillable(array $fillable)
Merge new fillable attributes with existing fillable attributes on the model.
in
GuardsAttributes at line 96
array
getGuarded()
Get the guarded attributes for the model.
in
GuardsAttributes at line 108
GuardsAttributes
guard(array $guarded)
Set the guarded attributes for the model.
in
GuardsAttributes at line 120
GuardsAttributes
mergeGuarded(array $guarded)
Merge new guarded attributes with existing guarded attributes on the model.
in
GuardsAttributes at line 132
static void
unguard(bool $state = true)
Disable all mass assignable restrictions.
Uses Context for coroutine-safe state management.
in
GuardsAttributes at line 140
static void
reguard()
Enable the mass assignment restrictions.
in
GuardsAttributes at line 148
static bool
isUnguarded()
Determine if the current state is "unguarded".
in
GuardsAttributes at line 164
static mixed
unguarded(callable $callback)
Run the given callable while being unguarded.
Uses Context for coroutine-safe state management, ensuring concurrent requests don't interfere with each other's guarding state.
in
GuardsAttributes at line 183
bool
isFillable(string $key)
Determine if the given attribute may be mass assigned.
in
GuardsAttributes at line 211
bool
isGuarded(string $key)
Determine if the given key is guarded.
in
GuardsAttributes at line 225
protected bool
isGuardableColumn(string $key)
Determine if the given column is a valid, guardable column.
in
GuardsAttributes at line 249
bool
totallyGuarded()
Determine if the model is totally guarded.
in
GuardsAttributes at line 260
protected array
fillableFromArray(array $attributes)
Get the fillable attributes of a given array.
in
PreventsCircularRecursion at line 22
protected mixed
withoutRecursion(callable $callback, mixed $default = null)
Prevent a method from being called multiple times on the same object within the same call stack.
in
PreventsCircularRecursion at line 52
static protected void
clearRecursiveCallValue(object $object, string $hash)
Remove an entry from the recursion cache for an object.
in
PreventsCircularRecursion at line 66
static protected array
getRecursiveCallStack(object $object)
Get the stack of methods being called recursively for the current object.
in
PreventsCircularRecursion at line 78
static protected WeakMap
getRecursionCache()
Get the current recursion cache being used by the model.
in
PreventsCircularRecursion at line 86
static protected mixed
setRecursiveCallValue(object $object, string $hash, mixed $value)
Set a value in the recursion cache for the given object and method.
in
TransformsToResource at line 23
JsonResource
toResource(string|null $resourceClass = null)
Create a new resource object for the given resource.
in
TransformsToResource at line 35
protected JsonResource
guessResource()
Guess the resource class for the model.
in
TransformsToResource at line 58
static array
guessResourceName()
Guess the resource class name for the model.
in
TransformsToResource at line 88
protected string|null
resolveResourceFromAttribute(string $class)
Get the resource class from the UseResource attribute.
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
HasCollection at line 28
Collection
newCollection(array $models = [])
Create a new Eloquent Collection instance.
in
HasCollection at line 48
string|null
resolveCollectionFromAttribute()
Resolve the collection class name from the CollectedBy attribute.
in
Model at line 309
__construct(array $attributes = [])
Create a new Eloquent model instance.
in
Model at line 325
protected void
bootIfNotBooted()
Check if the model needs to be booted and if so, do it.
in
Model at line 394
static protected void
booting()
Perform any actions required before the model boots.
in
Model at line 401
static protected void
boot()
Bootstrap the model and its traits.
in
Model at line 409
static protected void
bootTraits()
Boot all of the bootable traits on the model.
in
Model at line 444
protected void
initializeTraits()
Initialize any initializable traits on the model.
in
Model at line 454
void
initializeModelAttributes()
Initialize the model attributes from class attributes.
in
Model at line 490
static protected void
booted()
Perform any actions required after the model boots.
in
Model at line 497
static protected void
whenBooted(Closure $callback)
Register a closure to be executed after the model has booted.
in
Model at line 511
static void
clearBootedModels()
Clear the list of booted models so they will be re-booted.
Boot or tests only. Clears worker-wide boot state, boot callbacks, and global scopes; concurrent coroutines mid-query may observe inconsistent model state.
in
Model at line 524
static void
withoutTouching(callable $callback)
Disables relationship model touching for the current class during given callback scope.
in
Model at line 534
static void
withoutTouchingOn(array $models, callable $callback)
Disables relationship model touching for the given model classes during given callback scope.
in
Model at line 552
static bool
isIgnoringTouch(string|null $class = null)
Determine if the given model is ignoring touches.
in
Model at line 585
static void
shouldBeStrict(bool $shouldBeStrict = true)
Indicate that models should prevent lazy loading, silently discarding attributes, and accessing missing attributes.
Boot-only. Toggles worker-wide strict-mode flags that apply to every model operation across all coroutines.
in
Model at line 598
static void
preventLazyLoading(bool $value = true)
Prevent model relationships from being lazy loaded.
Boot-only. The flag persists in a static property for the worker lifetime and applies to every relationship access across all coroutines.
in
Model at line 609
static void
automaticallyEagerLoadRelationships(bool $value = true)
Determine if model relationships should be automatically eager loaded when accessed.
Boot-only. The flag persists in a static property for the worker lifetime and applies to every relationship access across all coroutines.
in
Model at line 622
static void
handleLazyLoadingViolationUsing(callable|null $callback)
Register a callback that is responsible for handling lazy loading violations.
Boot-only. The callback persists in a static property for the worker lifetime and runs on every lazy-loading violation across all coroutines.
in
Model at line 633
static void
preventSilentlyDiscardingAttributes(bool $value = true)
Prevent non-fillable attributes from being silently discarded.
Boot-only. The flag persists in a static property for the worker lifetime and applies to every mass assignment across all coroutines.
in
Model at line 647
static void
handleDiscardedAttributeViolationUsing(callable|null $callback)
Register a callback that is responsible for handling discarded attribute violations.
Boot-only. The callback persists in a static property for the worker lifetime and runs on every discarded-attribute violation across all coroutines.
in
Model at line 658
static void
preventAccessingMissingAttributes(bool $value = true)
Prevent accessing missing attributes on retrieved models.
Boot-only. The flag persists in a static property for the worker lifetime and applies to every attribute access across all coroutines.
in
Model at line 672
static void
handleMissingAttributeViolationUsing(callable|null $callback)
Register a callback that is responsible for handling missing attribute violations.
Boot-only. The callback persists in a static property for the worker lifetime and runs on every missing-attribute violation across all coroutines.
in
Model at line 685
static mixed
withoutBroadcasting(callable $callback)
Execute a callback without broadcasting any model events for all model types.
in
Model at line 701
static bool
isBroadcasting()
Determine if broadcasting is currently enabled.
in
Model at line 761
Model
forceFill(array $attributes)
Fill the model with an array of attributes. Force mass assignment.
in
Model at line 769
string
qualifyColumn(string $column)
Qualify the given column name by the model's table.
in
Model at line 784
array
qualifyColumns(array $columns)
Qualify the given columns with the model's table.
in
Model at line 796
Model
newInstance(array $attributes = [], bool $exists = false)
Create a new instance of the given model.
in
Model at line 823
Model
newFromBuilder(array|object $attributes = [], UnitEnum|string|null $connection = null)
Create a new model instance that is existing.
in
Model at line 841
static Builder
on(UnitEnum|string|null $connection = null)
Begin querying the model on a given connection.
in
Model at line 854
static Builder
onWriteConnection()
Begin querying the model on the write connection.
in
Model at line 866
static Collection
all(array|string $columns = ['*'])
Get all of the models from the database.
in
Model at line 879
static Builder
with(array|string $relations)
Begin querying a model with eager loading.
in
Model at line 907
Model
loadMorph(string $relation, array $relations)
Eager load relationships on the polymorphic relation of a model.
in
Model at line 925
Model
loadMissing(array|string $relations)
Eager load relations on the model if they are not already eager loaded.
in
Model at line 939
Model
loadAggregate(array|string $relations, string $column, string|null $function = null)
Eager load relation's column aggregations on the model.
in
Model at line 951
Model
loadCount(array|string $relations)
Eager load relation counts on the model.
in
Model at line 963
Model
loadMax(array|string $relations, string $column)
Eager load relation max column values on the model.
in
Model at line 973
Model
loadMin(array|string $relations, string $column)
Eager load relation min column values on the model.
in
Model at line 983
Model
loadSum(array|string $relations, string $column)
Eager load relation's column summations on the model.
in
Model at line 993
Model
loadAvg(array|string $relations, string $column)
Eager load relation average column values on the model.
in
Model at line 1003
Model
loadExists(array|string $relations)
Eager load related model existence values on the model.
in
Model at line 1013
Model
loadMorphAggregate(string $relation, array $relations, string $column, string|null $function = null)
Eager load relationship column aggregation on the polymorphic relation of a model.
in
Model at line 1031
Model
loadMorphCount(string $relation, array $relations)
Eager load relationship counts on the polymorphic relation of a model.
in
Model at line 1041
Model
loadMorphMax(string $relation, array $relations, string $column)
Eager load relationship max column values on the polymorphic relation of a model.
in
Model at line 1051
Model
loadMorphMin(string $relation, array $relations, string $column)
Eager load relationship min column values on the polymorphic relation of a model.
in
Model at line 1061
Model
loadMorphSum(string $relation, array $relations, string $column)
Eager load relationship column summations on the polymorphic relation of a model.
in
Model at line 1071
Model
loadMorphAvg(string $relation, array $relations, string $column)
Eager load relationship average column values on the polymorphic relation of a model.
in
Model at line 1081
protected int|false
increment(string $column, mixed $amount = 1, array $extra = [])
Increment a column's value by a given amount.
in
Model at line 1091
protected int|false
decrement(string $column, mixed $amount = 1, array $extra = [])
Decrement a column's value by a given amount.
in
Model at line 1101
protected int|false
incrementOrDecrement(string $column, mixed $amount, array $extra, string $method)
Run the increment or decrement method on the model.
in
Model at line 1136
bool
update(array $attributes = [], array $options = [])
Update the model in the database.
in
Model at line 1153
bool
updateOrFail(array $attributes = [], array $options = [])
Update the model in the database within a transaction.
in
Model at line 1168
bool
updateQuietly(array $attributes = [], array $options = [])
Update the model in the database without raising any events.
in
Model at line 1182
protected int|false
incrementQuietly(string $column, float|int $amount = 1, array $extra = [])
Increment a column's value by a given amount without raising any events.
in
Model at line 1194
protected int|false
decrementQuietly(string $column, float|int $amount = 1, array $extra = [])
Decrement a column's value by a given amount without raising any events.
in
Model at line 1207
protected int|false
incrementEach(array $columns, array $extra = [])
Increment each given column's value by the given amounts.
in
Model at line 1218
protected int|false
decrementEach(array $columns, array $extra = [])
Decrement each given column's value by the given amounts.
in
Model at line 1229
protected int|false
incrementEachQuietly(array $columns, array $extra = [])
Increment each given column's value by the given amounts without raising any events.
in
Model at line 1242
protected int|false
decrementEachQuietly(array $columns, array $extra = [])
Decrement each given column's value by the given amounts without raising any events.
in
Model at line 1255
protected int|false
incrementOrDecrementEach(array $columns, array $extra, string $method)
Run the incrementEach or decrementEach method on the model.
in
Model at line 1302
bool
push()
Save the model and all of its relationships.
in
Model at line 1331
bool
pushQuietly()
Save the model and all of its relationships without raising any events to the parent model.
in
Model at line 1341
bool
saveQuietly(array $options = [])
Save the model to the database without raising any events.
in
Model at line 1351
bool
save(array $options = [])
Save the model to the database.
in
Model at line 1398
bool
saveOrIgnore(array $options = [], array|string|null $uniqueBy = null)
Save the model to the database, ignoring specific unique constraint conflicts.
in
Model at line 1432
bool
saveOrFail(array $options = [])
Save the model to the database within a transaction.
in
Model at line 1442
protected void
finishSave(array $options)
Perform any actions that are necessary after the model is saved.
in
Model at line 1458
protected bool
performUpdate(Builder $query)
Perform a model update operation.
in
AsPivot at line 83
protected Builder
setKeysForSelectQuery(Builder $query)
Set the keys for a select query.
in
Model at line 1506
protected mixed
getKeyForSelectQuery()
Get the primary key value for a select query.
in
AsPivot at line 106
protected Builder
setKeysForSaveQuery(Builder $query)
Set the keys for a save update query.
in
Model at line 1527
protected mixed
getKeyForSaveQuery()
Get the primary key value for a save query.
in
Model at line 1537
protected bool
performInsert(Builder $query)
Perform a model insert operation.
in
Model at line 1591
protected bool
performInsertOrIgnore(Builder $query, array|string|null $uniqueBy)
Perform a model insert operation, ignoring specific unique constraint conflicts.
in
Model at line 1642
protected void
insertAndSetId(Builder $query, array $attributes)
Insert the given attributes and set the ID on the model.
in
Model at line 1654
static int
destroy(Collection|Collection|array|int|string $ids)
Destroy the models for the given IDs.
in
AsPivot at line 117
int
delete()
Delete the pivot model record from the database.
Returns affected row count (int) rather than bool|null because pivots use query builder deletion with compound keys.
in
Model at line 1731
bool|null
deleteQuietly()
Delete the model from the database without raising any events.
in
Model at line 1741
bool|null
deleteOrFail()
Delete the model from the database within a transaction.
in
Model at line 1755
bool|null
forceDelete()
Force a hard delete on a soft deleted model.
This method protects developers from running forceDelete when the trait is missing.
in
Model at line 1767
static int
forceDestroy(Collection|Collection|array|int|string $ids)
Force a hard destroy on a soft deleted model.
This method protects developers from running forceDestroy when the trait is missing.
in
Model at line 1775
protected void
performDeleteOnModel()
Perform the actual delete query on this model instance.
in
Model at line 1807
Builder
newModelQuery()
Get a new query builder that doesn't have any global scopes or eager loading.
in
Model at line 1820
Builder
newQueryWithoutRelationships()
Get a new query builder with no relationships loaded.
in
Model at line 1831
Builder
registerGlobalScopes(Builder $builder)
Register the global scopes for this builder instance.
in
Model at line 1845
Builder
newQueryWithoutScopes()
Get a new query builder that doesn't have any global scopes.
in
Model at line 1857
Builder
newQueryWithoutScope(Scope|string $scope)
Get a new query instance without a given scope.
in
AsPivot at line 267
Builder
newQueryForRestoration(array|int|string $ids)
Get a new query to restore one or more models by their queueable IDs.
in
Model at line 1877
Builder
newEloquentBuilder(Builder $query)
Create a new Eloquent query builder for the model.
in
Model at line 1895
protected string|false
resolveCustomBuilderClass()
Resolve the custom Eloquent builder class from the model attributes.
in
Model at line 1908
protected Builder
newBaseQueryBuilder()
Get a new query builder instance for the connection.
in
Model at line 1919
Model
newPivot(Model $parent, array $attributes, string $table, bool $exists, string|null $using = null)
Create a new pivot model instance.
in
Model at line 1928
bool
hasNamedScope(string $scope)
Determine if the model has a given scope.
in
Model at line 1939
mixed
callNamedScope(string $scope, array $parameters = [])
Apply the given named scope if possible.
in
Model at line 1951
static protected bool
isScopeMethodWithAttribute(string $method)
Determine if the given method has a scope attribute.
in
Model at line 1966
array
toArray()
Convert the model instance to an array.
in
Model at line 1979
string
toJson(int $options = 0)
Convert the model instance to JSON.
in
Model at line 1995
string
toPrettyJson(int $options = 0)
Convert the model instance to pretty print formatted JSON.
in
Model at line 2003
mixed
jsonSerialize()
Convert the object into something JSON serializable.
in
Model at line 2013
Model|null
fresh(array|string $with = [])
Reload a fresh model instance from the database.
in
Model at line 2028
Model
refresh()
Reload the current model instance with fresh attributes from the database.
in
Model at line 2056
Model
replicate(array|null $except = null)
Clone the model into a new, non-existing instance.
in
Model at line 2085
Model
replicateQuietly(array|null $except = null)
Clone the model into a new, non-existing instance without raising any events.
in
Model at line 2093
bool
is(Model|null $model)
Determine if two models have the same ID and belong to the same table.
in
Model at line 2112
Connection
getConnection()
Get the database connection for the model.
in
Model at line 2120
string|null
getConnectionName()
Get the current connection name for the model.
in
Model at line 2130
Model
setConnection(UnitEnum|string|null $name)
Set the connection associated with the model.
in
Model at line 2140
static Connection
resolveConnection(UnitEnum|string|null $connection = null)
Resolve a connection instance.
in
Model at line 2149
static ConnectionResolverInterface|null
getConnectionResolver()
Get the connection resolver instance.
in
Model at line 2161
static void
setConnectionResolver(ConnectionResolverInterface $resolver)
Set the connection resolver instance.
Boot-only. The resolver persists in a static property for the worker lifetime and is used by every model's connection resolution across all coroutines.
in
Model at line 2172
static void
unsetConnectionResolver()
Unset the connection resolver for models.
Tests only. Clears the worker-wide connection resolver shared by every coroutine; concurrent model queries will fail or rebuild.
in
Model at line 2184
static protected mixed
resolveClassAttribute(string $attributeClass, string|null $property = null, string|null $class = null)
Resolve an attribute from the model class or its parents.
in
AsPivot at line 152
string
getTable()
Get the table associated with the model.
in
Model at line 2241
string
getKeyName()
Get the primary key for the model.
in
Model at line 2261
string
getQualifiedKeyName()
Get the table qualified key name.
in
Model at line 2269
string
getKeyType()
Get the auto-incrementing key type.
in
Model at line 2289
bool
getIncrementing()
Get the value indicating whether the IDs are incrementing.
in
Model at line 2309
mixed
getKey()
Get the value of the model's primary key.
in
AsPivot at line 247
mixed
getQueueableId()
Get the queueable identity for the entity.
in
Model at line 2325
array
getQueueableRelations()
Get the queueable relationships for the entity.
in
Model at line 2357
string|null
getQueueableConnection()
Get the queueable connection for the entity.
in
Model at line 2365
mixed
getRouteKey()
Get the value of the model's route key.
in
Model at line 2373
string
getRouteKeyName()
Get the route key for the model.
in
Model at line 2382
mixed
resolveRouteBinding(mixed $value, string|null $field = null)
Retrieve the model for a bound value.
in
Model at line 2390
mixed
resolveSoftDeletableRouteBinding(mixed $value, string|null $field = null)
Retrieve the model for a bound value.
in
Model at line 2398
mixed
resolveChildRouteBinding(string $childType, mixed $value, string|null $field)
Retrieve the child model for a bound value.
in
Model at line 2406
mixed
resolveSoftDeletableChildRouteBinding(string $childType, mixed $value, string|null $field)
Retrieve the child model for a bound value.
in
Model at line 2416
protected Relation
resolveChildRouteBindingQuery(string $childType, mixed $value, string|null $field)
Retrieve the child model query for a bound value.
in
Model at line 2435
protected string
childRouteBindingRelationshipName(string $childType)
Retrieve the child route model binding relationship name for the given child type.
in
Model at line 2446
Builder|Relation
resolveRouteBindingQuery(Model|Builder|Relation $query, mixed $value, string|null $field = null)
Retrieve the model for a bound value.
in
AsPivot at line 168
string
getForeignKey()
Get the foreign key column name.
in
Model at line 2462
int
getPerPage()
Get the number of models to return per page.
in
Model at line 2480
static bool
isSoftDeletable()
Determine if the model is soft deletable.
in
Model at line 2488
static bool
isPrunable()
Determine if the model is prunable.
in
Model at line 2496
static bool
isMassPrunable()
Determine if the model is mass prunable.
in
Model at line 2504
static bool
preventsLazyLoading()
Determine if lazy loading is disabled.
in
Model at line 2512
static bool
isAutomaticallyEagerLoadingRelationships()
Determine if relationships are being automatically eager loaded when accessed.
in
Model at line 2520
static bool
preventsSilentlyDiscardingAttributes()
Determine if discarding guarded attribute fills is disabled.
in
Model at line 2528
static bool
preventsAccessingMissingAttributes()
Determine if accessing missing attributes is disabled.
in
Model at line 2536
string
broadcastChannelRoute()
Get the broadcast channel route definition that is associated with the given entity.
in
Model at line 2544
string
broadcastChannel()
Get the broadcast channel name that is associated with the given entity.
in
Model at line 2552
static void
flushGuardableColumns()
Flush cached guardable column metadata.
in
Model at line 2560
static void
flushState()
Flush all static state.
in
Model at line 2599
mixed
__get(string $key)
Dynamically retrieve attributes on the model.
in
Model at line 2607
void
__set(string $key, mixed $value)
Dynamically set attributes on the model.
in
Model at line 2617
bool
offsetExists(mixed $offset)
Determine if the given attribute exists.
in
Model at line 2635
mixed
offsetGet(mixed $offset)
Get the value for a given offset.
in
Model at line 2646
void
offsetSet(mixed $offset, mixed $value)
Set the value for a given offset.
in
Model at line 2656
void
offsetUnset(mixed $offset)
Unset the value for a given offset.
in
Model at line 2669
bool
__isset(string $key)
Determine if an attribute or relation exists on the model.
in
Model at line 2677
void
__unset(string $key)
Unset an attribute on the model.
in
Model at line 2687
mixed
__call(string $method, array $parameters)
Handle dynamic method calls into the model.
in
Model at line 2710
static mixed
__callStatic(string $method, array $parameters)
Handle dynamic static method calls into the model.
in
Model at line 2722
string
__toString()
Convert the model to its string representation.
in
Model at line 2732
CanBeEscapedWhenCastToString
escapeWhenCastingToString(bool $escape = true)
Indicate that the object's string representation should be escaped when __toString is invoked.
in
Model at line 2744
array
__sleep()
Prepare the object for serialization.
in
Model at line 2771
void
__wakeup()
When a model is being unserialized, check if it needs to be booted.
in
AsPivot at line 36
static AsPivot
fromAttributes(Model $parent, array $attributes, string $table, bool $exists = false)
Create a new pivot model instance.
in
AsPivot at line 63
static AsPivot
fromRawAttributes(Model $parent, array $attributes, string $table, bool $exists = false)
Create a new pivot model from raw values returned from a query.
in
AsPivot at line 141
protected Builder
getDeleteQuery()
Get the query builder for a delete operation on the pivot.
in
AsPivot at line 176
string
getRelatedKey()
Get the "related key" column name.
in
AsPivot at line 184
string
getOtherKey()
Get the "related key" column name.
in
AsPivot at line 194
AsPivot
setPivotKeys(string $foreignKey, string $relatedKey)
Set the key names for the pivot model instance.
in
AsPivot at line 208
AsPivot
setRelatedModel(Model|null $related = null)
Set the related model of the relationship.
in
AsPivot at line 218
bool
hasTimestampAttributes(array|null $attributes = null)
Determine if the pivot model or given attributes has timestamp attributes.