Model
abstract class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializable, QueueableEntity, UrlRoutable (View source)
Traits
HasAttributes |
HasEvents |
HasGlobalScopes |
HasRelationships |
HasTimestamps |
HidesAttributes |
GuardsAttributes |
ForwardsCalls |
Constants
CREATED_AT | The name of the "created at" column. |
UPDATED_AT | The name of the "updated at" column. |
Properties
protected array | $attributes | The model's attributes. | from HasAttributes |
protected array | $original | The model attribute's original state. | from HasAttributes |
protected array | $changes | The changed model attributes. | from HasAttributes |
protected array | $casts | The attributes that should be cast to native types. | from HasAttributes |
protected array | $dates | The attributes that should be mutated to dates. | from HasAttributes |
protected string | $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 |
protected array | $dispatchesEvents | The event map for the model. | from HasEvents |
protected array | $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 |
static array | $manyMethods | The many to many relationship methods. | from HasRelationships |
bool | $timestamps | Indicates if the model should be timestamped. | from HasTimestamps |
$hidden | The attributes that should be hidden for serialization. | from HidesAttributes | |
protected array | $visible | The attributes that should be visible in serialization. | from HidesAttributes |
protected array | $fillable | The attributes that are mass assignable. | from GuardsAttributes |
protected array | $guarded | The attributes that aren't mass assignable. | from GuardsAttributes |
static protected bool | $unguarded | Indicates if all mass assignment is enabled. | from GuardsAttributes |
protected string | $connection | The connection name for the model. | |
protected string | $table | The table associated with the model. | |
protected string | $primaryKey | The primary key for the model. | |
protected string | $keyType | The "type" of the auto-incrementing ID. | |
bool | $incrementing | Indicates if the IDs are auto-incrementing. | |
protected array | $with | The relations to eager load on every query. | |
protected array | $withCount | The relationship counts that should be eager loaded on every query. | |
protected int | $perPage | The number of models to return for pagination. | |
bool | $exists | Indicates if the model exists. | |
bool | $wasRecentlyCreated | Indicates if the model was inserted during the current request lifecycle. | |
static protected ConnectionResolverInterface | $resolver | The connection resolver instance. | |
static protected Dispatcher | $dispatcher | The event dispatcher instance. | |
static protected array | $booted | The array of booted models. | |
static protected array | $traitInitializers | The array of trait initializers that will be called on each new instance. | |
static protected array | $globalScopes | The array of global scopes on the model. | |
static protected array | $ignoreOnTouch | The list of models classes that should not be affected with touch. |
Methods
array | attributesToArray() Convert the model's attributes to an array. | from HasAttributes |
array | addDateAttributesToArray(array $attributes) Add the date attributes to the attributes array. | from HasAttributes |
array | addMutatedAttributesToArray(array $attributes, array $mutatedAttributes) Add the mutated attributes to the attributes array. | from HasAttributes |
array | addCastAttributesToArray(array $attributes, array $mutatedAttributes) Add the casted attributes to the attributes array. | from HasAttributes |
array | getArrayableAttributes() Get an attribute array of all arrayable attributes. | from HasAttributes |
array | getArrayableAppends() Get all of the appendable values that are arrayable. | from HasAttributes |
array | relationsToArray() Get the model's relationships in array form. | from HasAttributes |
array | getArrayableRelations() Get an attribute array of all arrayable relations. | from HasAttributes |
array | getArrayableItems(array $values) Get an attribute array of all arrayable values. | from HasAttributes |
mixed | getAttribute(string $key) Get an attribute from the model. | from HasAttributes |
mixed | getAttributeValue(string $key) Get a plain attribute (not a relationship). | from HasAttributes |
mixed | getAttributeFromArray(string $key) Get an attribute from the $attributes array. | from HasAttributes |
mixed | getRelationValue(string $key) Get a relationship. | from HasAttributes |
mixed | getRelationshipFromMethod(string $method) Get a relationship value from a method. | from HasAttributes |
bool | hasGetMutator(string $key) Determine if a get mutator exists for an attribute. | from HasAttributes |
mixed | mutateAttribute(string $key, mixed $value) Get the value of an attribute using its mutator. | from HasAttributes |
mixed | mutateAttributeForArray(string $key, mixed $value) Get the value of an attribute using its mutator for array conversion. | from HasAttributes |
mixed | castAttribute(string $key, mixed $value) Cast an attribute to a native PHP type. | from HasAttributes |
string | getCastType(string $key) Get the type of cast for a model attribute. | from HasAttributes |
bool | isCustomDateTimeCast(string $cast) Determine if the cast type is a custom date time cast. | from HasAttributes |
mixed | setAttribute(string $key, mixed $value) Set a given attribute on the model. | from HasAttributes |
bool | hasSetMutator(string $key) Determine if a set mutator exists for an attribute. | from HasAttributes |
mixed | setMutatedAttributeValue(string $key, mixed $value) Set the value of an attribute using its mutator. | from HasAttributes |
bool | isDateAttribute(string $key) Determine if the given attribute is a date or date castable. | from HasAttributes |
$this | fillJsonAttribute(string $key, mixed $value) Set a given JSON attribute on the model. | from HasAttributes |
$this | getArrayAttributeWithValue(string $path, string $key, mixed $value) Get an array attribute with the given key and value set. | from HasAttributes |
array | getArrayAttributeByKey(string $key) Get an array attribute or return an empty array if it is not set. | from HasAttributes |
string | castAttributeAsJson(string $key, mixed $value) Cast the given attribute to JSON. | from HasAttributes |
string | asJson(mixed $value) Encode the given value as JSON. | from HasAttributes |
mixed | fromFloat(mixed $value) Decode the given float. | from HasAttributes |
mixed | fromJson(string $value, bool $asObject = false) Decode the given JSON back into an array or object. | from HasAttributes |
Carbon | asDate(mixed $value) Return a timestamp as DateTime object with time set to 00:00:00. | from HasAttributes |
Carbon | asDateTime(mixed $value) Return a timestamp as DateTime object. | from HasAttributes |
bool | isStandardDateFormat(string $value) Determine if the given value is a standard date format. | from HasAttributes |
string | fromDateTime(DateTime|int $value) Convert a DateTime to a storable string. | from HasAttributes |
int | asTimestamp(mixed $value) Return a timestamp as unix timestamp. | from HasAttributes |
string | serializeDate(DateTimeInterface $date) Prepare a date for array / JSON serialization. | from HasAttributes |
array | getDates() Get the attributes that should be converted to dates. | from HasAttributes |
string | getDateFormat() Get the format for database stored dates. | from HasAttributes |
$this | setDateFormat(string $format) Set the date format used by the model. | from HasAttributes |
bool | hasCast(string $key, array|string|null $types = null) Determine whether an attribute should be cast to a native type. | from HasAttributes |
array | getCasts() Get the casts array. | from HasAttributes |
bool | isDateCastable(string $key) Determine whether a value is Date / DateTime castable for inbound manipulation. | from HasAttributes |
bool | isJsonCastable(string $key) Determine whether a value is JSON castable for inbound manipulation. | from HasAttributes |
array | getAttributes() Get all of the current attributes on the model. | from HasAttributes |
$this | setRawAttributes(array $attributes, bool $sync = false) Set the array of model attributes. No checking is done. | from HasAttributes |
mixed|array | getOriginal(string|null $key = null, mixed $default = null) Get the model's original attribute values. | from HasAttributes |
array | only(array|mixed $attributes) Get a subset of the model's attributes. | from HasAttributes |
$this | syncOriginal() Sync the original attributes with the current. | from HasAttributes |
$this | syncOriginalAttribute(string $attribute) Sync a single original attribute with its current value. | from HasAttributes |
$this | syncChanges() Sync the changed attributes. | from HasAttributes |
bool | isDirty(array|string|null $attributes = null) Determine if the model or given attribute(s) have been modified. | from HasAttributes |
bool | isClean(array|string|null $attributes = null) Determine if the model or given attribute(s) have remained the same. | from HasAttributes |
bool | wasChanged(array|string|null $attributes = null) Determine if the model or given attribute(s) have been modified. | from HasAttributes |
bool | hasChanges(array $changes, array|string|null $attributes = null) Determine if the given attributes were changed. | from HasAttributes |
array | getDirty() Get the attributes that have been changed since last sync. | from HasAttributes |
array | getChanges() Get the attributes that were changed. | from HasAttributes |
bool | originalIsEquivalent(string $key, mixed $current) Determine if the new and old values for a given key are equivalent. | from HasAttributes |
$this | append(array|string $attributes) Append attributes to query when building a query. | from HasAttributes |
$this | setAppends(array $appends) Set the accessors to append to model arrays. | from HasAttributes |
array | getMutatedAttributes() Get the mutated attributes for a given instance. | from HasAttributes |
static void | cacheMutatedAttributes(string $class) Extract and cache all the mutated attributes of a class. | from HasAttributes |
static array | getMutatorMethods(mixed $class) Get all of the attribute mutator methods. | from HasAttributes |
static void | observe(object|array|string $classes) Register observers with the model. | from HasEvents |
void | registerObserver(object|string $class) Register a single observer with the model. | from HasEvents |
array | getObservableEvents() Get the observable event names. | from HasEvents |
$this | setObservableEvents(array $observables) Set the observable event names. | from HasEvents |
void | addObservableEvents(array|mixed $observables) Add an observable event name. | from HasEvents |
void | removeObservableEvents(array|mixed $observables) Remove an observable event name. | from HasEvents |
static void | registerModelEvent(string $event, Closure|string $callback) Register a model event with the dispatcher. | from HasEvents |
mixed | fireModelEvent(string $event, bool $halt = true) Fire the given event for the model. | from HasEvents |
mixed|null | fireCustomModelEvent(string $event, string $method) Fire a custom model event for the given event. | from HasEvents |
mixed | filterModelEventResults(mixed $result) Filter the model event results. | from HasEvents |
static void | retrieved(Closure|string $callback) Register a retrieved model event with the dispatcher. | from HasEvents |
static void | saving(Closure|string $callback) Register a saving model event with the dispatcher. | from HasEvents |
static void | saved(Closure|string $callback) Register a saved model event with the dispatcher. | from HasEvents |
static void | updating(Closure|string $callback) Register an updating model event with the dispatcher. | from HasEvents |
static void | updated(Closure|string $callback) Register an updated model event with the dispatcher. | from HasEvents |
static void | creating(Closure|string $callback) Register a creating model event with the dispatcher. | from HasEvents |
static void | created(Closure|string $callback) Register a created model event with the dispatcher. | from HasEvents |
static void | deleting(Closure|string $callback) Register a deleting model event with the dispatcher. | from HasEvents |
static void | deleted(Closure|string $callback) Register a deleted model event with the dispatcher. | from HasEvents |
static void | flushEventListeners() Remove all of the event listeners for the model. | from HasEvents |
static Dispatcher | getEventDispatcher() Get the event dispatcher instance. | from HasEvents |
static void | setEventDispatcher(Dispatcher $dispatcher) Set the event dispatcher instance. | from HasEvents |
static void | unsetEventDispatcher() Unset the event dispatcher for models. | from HasEvents |
static mixed | addGlobalScope(Scope|Closure|string $scope, Closure $implementation = null) Register a new global scope on the model. | from HasGlobalScopes |
static bool | hasGlobalScope(Scope|string $scope) Determine if a model has a global scope. | from HasGlobalScopes |
static Scope|Closure|null | getGlobalScope(Scope|string $scope) Get a global scope registered with the model. | from HasGlobalScopes |
array | getGlobalScopes() Get the global scopes for this class instance. | from HasGlobalScopes |
HasOne | hasOne(string $related, string $foreignKey = null, string $localKey = null) Define a one-to-one relationship. | from HasRelationships |
HasOne | newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey) Instantiate a new HasOne relationship. | from HasRelationships |
MorphOne | morphOne(string $related, string $name, string $type = null, string $id = null, string $localKey = null) Define a polymorphic one-to-one relationship. | from HasRelationships |
MorphOne | newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey) Instantiate a new MorphOne relationship. | from HasRelationships |
BelongsTo | belongsTo(string $related, string $foreignKey = null, string $ownerKey = null, string $relation = null) Define an inverse one-to-one or many relationship. | from HasRelationships |
BelongsTo | newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation) Instantiate a new BelongsTo relationship. | from HasRelationships |
MorphTo | morphTo(string $name = null, string $type = null, string $id = null, string $ownerKey = null) Define a polymorphic, inverse one-to-one or many relationship. | from HasRelationships |
MorphTo | morphEagerTo(string $name, string $type, string $id, string $ownerKey) Define a polymorphic, inverse one-to-one or many relationship. | from HasRelationships |
MorphTo | morphInstanceTo(string $target, string $name, string $type, string $id, string $ownerKey) Define a polymorphic, inverse one-to-one or many relationship. | from HasRelationships |
MorphTo | newMorphTo(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation) Instantiate a new MorphTo relationship. | from HasRelationships |
static string | getActualClassNameForMorph(string $class) Retrieve the actual class name for a given morph class. | from HasRelationships |
string | guessBelongsToRelation() Guess the "belongs to" relationship name. | from HasRelationships |
HasMany | hasMany(string $related, string $foreignKey = null, string $localKey = null) Define a one-to-many relationship. | from HasRelationships |
HasMany | newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey) Instantiate a new HasMany relationship. | from HasRelationships |
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. | from HasRelationships |
HasManyThrough | newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey) Instantiate a new HasManyThrough relationship. | from HasRelationships |
MorphMany | morphMany(string $related, string $name, string $type = null, string $id = null, string $localKey = null) Define a polymorphic one-to-many relationship. | from HasRelationships |
MorphMany | newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey) Instantiate a new MorphMany relationship. | from HasRelationships |
BelongsToMany | belongsToMany(string $related, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null, string $relation = null) Define a many-to-many relationship. | from HasRelationships |
BelongsToMany | newBelongsToMany(Builder $query, Model $parent, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string $relationName = null) Instantiate a new BelongsToMany relationship. | from HasRelationships |
MorphToMany | morphToMany(string $related, string $name, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null, bool $inverse = false) Define a polymorphic many-to-many relationship. | from HasRelationships |
MorphToMany | newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string $relationName = null, bool $inverse = false) Instantiate a new MorphToMany relationship. | from HasRelationships |
MorphToMany | morphedByMany(string $related, string $name, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null) Define a polymorphic, inverse many-to-many relationship. | from HasRelationships |
string | guessBelongsToManyRelation() Get the relationship name of the belongs to many. | from HasRelationships |
string | joiningTable(string $related, Model|null $instance = null) Get the joining table name for a many-to-many relation. | from HasRelationships |
string | joiningTableSegment() Get this model's half of the intermediate table name for belongsToMany relationships. | from HasRelationships |
bool | touches(string $relation) Determine if the model touches a given relation. | from HasRelationships |
void | touchOwners() Touch the owning relations of the model. | from HasRelationships |
array | getMorphs(string $name, string $type, string $id) Get the polymorphic relationship columns. | from HasRelationships |
string | getMorphClass() Get the class name for polymorphic relations. | from HasRelationships |
mixed | newRelatedInstance(string $class) Create a new model instance for a related model. | from HasRelationships |
array | getRelations() Get all the loaded relations for the instance. | from HasRelationships |
mixed | getRelation(string $relation) Get a specified relationship. | from HasRelationships |
bool | relationLoaded(string $key) Determine if the given relation is loaded. | from HasRelationships |
$this | setRelation(string $relation, mixed $value) Set the given relationship on the model. | from HasRelationships |
$this | unsetRelation(string $relation) Unset a loaded relationship. | from HasRelationships |
$this | setRelations(array $relations) Set the entire relations array on the model. | from HasRelationships |
array | getTouchedRelations() Get the relationships that are touched on save. | from HasRelationships |
$this | setTouchedRelations(array $touches) Set the relationships that are touched on save. | from HasRelationships |
bool | touch() Update the model's update timestamp. | from HasTimestamps |
void | updateTimestamps() Update the creation and update timestamps. | from HasTimestamps |
$this | setCreatedAt(mixed $value) Set the value of the "created at" attribute. | from HasTimestamps |
$this | setUpdatedAt(mixed $value) Set the value of the "updated at" attribute. | from HasTimestamps |
Carbon | freshTimestamp() Get a fresh timestamp for the model. | from HasTimestamps |
string | freshTimestampString() Get a fresh timestamp for the model. | from HasTimestamps |
bool | usesTimestamps() Determine if the model uses timestamps. | from HasTimestamps |
string | getCreatedAtColumn() Get the name of the "created at" column. | from HasTimestamps |
string | getUpdatedAtColumn() Get the name of the "updated at" column. | from HasTimestamps |
array | getHidden() Get the hidden attributes for the model. | from HidesAttributes |
$this | setHidden(array $hidden) Set the hidden attributes for the model. | from HidesAttributes |
void | addHidden(array|string|null $attributes = null) Add hidden attributes for the model. | from HidesAttributes |
array | getVisible() Get the visible attributes for the model. | from HidesAttributes |
$this | setVisible(array $visible) Set the visible attributes for the model. | from HidesAttributes |
void | addVisible(array|string|null $attributes = null) Add visible attributes for the model. | from HidesAttributes |
$this | makeVisible(array|string $attributes) Make the given, typically hidden, attributes visible. | from HidesAttributes |
$this | makeHidden(array|string $attributes) Make the given, typically visible, attributes hidden. | from HidesAttributes |
array | getFillable() Get the fillable attributes for the model. | from GuardsAttributes |
$this | fillable(array $fillable) Set the fillable attributes for the model. | from GuardsAttributes |
array | getGuarded() Get the guarded attributes for the model. | from GuardsAttributes |
$this | guard(array $guarded) Set the guarded attributes for the model. | from GuardsAttributes |
static void | unguard(bool $state = true) Disable all mass assignable restrictions. | from GuardsAttributes |
static void | reguard() Enable the mass assignment restrictions. | from GuardsAttributes |
static bool | isUnguarded() Determine if current state is "unguarded". | from GuardsAttributes |
static mixed | unguarded(callable $callback) Run the given callable while being unguarded. | from GuardsAttributes |
bool | isFillable(string $key) Determine if the given attribute may be mass assigned. | from GuardsAttributes |
bool | isGuarded(string $key) Determine if the given key is guarded. | from GuardsAttributes |
bool | totallyGuarded() Determine if the model is totally guarded. | from GuardsAttributes |
array | fillableFromArray(array $attributes) Get the fillable attributes of a given array. | from GuardsAttributes |
mixed | forwardCallTo(mixed $object, string $method, array $parameters) Forward a method call to the given object. | from ForwardsCalls |
static void | throwBadMethodCallException(string $method) Throw a bad method call exception for the given method. | from ForwardsCalls |
void | __construct(array $attributes = []) Create a new Eloquent model instance. | |
void | bootIfNotBooted() Check if the model needs to be booted and if so, do it. | |
static void | boot() The "booting" method of the model. | |
static void | bootTraits() Boot all of the bootable traits on the model. | |
void | initializeTraits() Initialize any initializable traits on the model. | |
static void | clearBootedModels() Clear the list of booted models so they will be re-booted. | |
static void | withoutTouching(callable $callback) Disables relationship model touching for the current class during given callback scope. | |
static void | withoutTouchingOn(array $models, callable $callback) Disables relationship model touching for the given model classes during given callback scope. | |
static bool | isIgnoringTouch(string|null $class = null) Determine if the given model is ignoring touches. | |
$this | fill(array $attributes) Fill the model with an array of attributes. | |
$this | forceFill(array $attributes) Fill the model with an array of attributes. Force mass assignment. | |
string | qualifyColumn(string $column) Qualify the given column name by the model's table. | |
string | removeTableFromKey(string $key) Remove the table name from a given key. | |
Model | newInstance(array $attributes = [], bool $exists = false) Create a new instance of the given model. | |
Model | newFromBuilder(array $attributes = [], string|null $connection = null) Create a new model instance that is existing. | |
static Builder | on(string|null $connection = null) Begin querying the model on a given connection. | |
static Builder | onWriteConnection() Begin querying the model on the write connection. | |
static Collection|Model[] | all(array|mixed $columns = ['*']) Get all of the models from the database. | |
static Builder|Model | with(array|string $relations) Begin querying a model with eager loading. | |
$this | load(array|string $relations) Eager load relations on the model. | |
$this | loadMissing(array|string $relations) Eager load relations on the model if they are not already eager loaded. | |
int | increment(string $column, float|int $amount = 1, array $extra = []) Increment a column's value by a given amount. | |
int | decrement(string $column, float|int $amount = 1, array $extra = []) Decrement a column's value by a given amount. | |
int | incrementOrDecrement(string $column, float|int $amount, array $extra, string $method) Run the increment or decrement method on the model. | |
void | incrementOrDecrementAttributeValue(string $column, float|int $amount, array $extra, string $method) Increment the underlying attribute value and sync with original. | |
bool | update(array $attributes = [], array $options = []) Update the model in the database. | |
bool | push() Save the model and all of its relationships. | |
bool | save(array $options = []) Save the model to the database. | |
bool | saveOrFail(array $options = []) Save the model to the database using transaction. | |
void | finishSave(array $options) Perform any actions that are necessary after the model is saved. | |
bool | performUpdate(Builder $query) Perform a model update operation. | |
Builder | setKeysForSaveQuery(Builder $query) Set the keys for a save update query. | |
mixed | getKeyForSaveQuery() Get the primary key value for a save query. | |
bool | performInsert(Builder $query) Perform a model insert operation. | |
void | insertAndSetId(Builder $query, array $attributes) Insert the given attributes and set the ID on the model. | |
static int | destroy(Collection|array|int $ids) Destroy the models for the given IDs. | |
bool|null | delete() Delete the model from the database. | |
bool|null | forceDelete() Force a hard delete on a soft deleted model. | |
void | performDeleteOnModel() Perform the actual delete query on this model instance. | |
static Builder | query() Begin querying the model. | |
Builder | newQuery() Get a new query builder for the model's table. | |
Builder|Model | newModelQuery() Get a new query builder that doesn't have any global scopes or eager loading. | |
Builder | newQueryWithoutRelationships() Get a new query builder with no relationships loaded. | |
Builder | registerGlobalScopes(Builder $builder) Register the global scopes for this builder instance. | |
Builder|Model | newQueryWithoutScopes() Get a new query builder that doesn't have any global scopes. | |
Builder | newQueryWithoutScope(Scope|string $scope) Get a new query instance without a given scope. | |
Builder | newQueryForRestoration(array|int $ids) Get a new query to restore one or more models by their queueable IDs. | |
Builder|Model | newEloquentBuilder(Builder $query) Create a new Eloquent query builder for the model. | |
Builder | newBaseQueryBuilder() Get a new query builder instance for the connection. | |
Collection | newCollection(array $models = []) Create a new Eloquent Collection instance. | |
Pivot | newPivot(Model $parent, array $attributes, string $table, bool $exists, string|null $using = null) Create a new pivot model instance. | |
array | toArray() Convert the model instance to an array. | |
string | toJson(int $options = 0) Convert the model instance to JSON. | |
array | jsonSerialize() Convert the object into something JSON serializable. | |
Model|null | fresh(array|string $with = []) Reload a fresh model instance from the database. | |
$this | refresh() Reload the current model instance with fresh attributes from the database. | |
Model | replicate(array $except = null) Clone the model into a new, non-existing instance. | |
bool | is(Model|null $model) Determine if two models have the same ID and belong to the same table. | |
bool | isNot(Model|null $model) Determine if two models are not the same. | |
Connection | getConnection() Get the database connection for the model. | |
string | getConnectionName() Get the current connection name for the model. | |
$this | setConnection(string $name) Set the connection associated with the model. | |
static Connection | resolveConnection(string|null $connection = null) Resolve a connection instance. | |
static ConnectionResolverInterface | getConnectionResolver() Get the connection resolver instance. | |
static void | setConnectionResolver(ConnectionResolverInterface $resolver) Set the connection resolver instance. | |
static void | unsetConnectionResolver() Unset the connection resolver for models. | |
string | getTable() Get the table associated with the model. | |
$this | setTable(string $table) Set the table associated with the model. | |
string | getKeyName() Get the primary key for the model. | |
$this | setKeyName(string $key) Set the primary key for the model. | |
string | getQualifiedKeyName() Get the table qualified key name. | |
string | getKeyType() Get the auto-incrementing key type. | |
$this | setKeyType(string $type) Set the data type for the primary key. | |
bool | getIncrementing() Get the value indicating whether the IDs are incrementing. | |
$this | setIncrementing(bool $value) Set whether IDs are incrementing. | |
mixed | getKey() Get the value of the model's primary key. | |
mixed | getQueueableId() Get the queueable identity for the entity. | |
array | getQueueableRelations() Get the queueable relationships for the entity. | |
string|null | getQueueableConnection() Get the queueable connection for the entity. | |
mixed | getRouteKey() Get the value of the model's route key. | |
string | getRouteKeyName() Get the route key for the model. | |
Model|null | resolveRouteBinding(mixed $value) Retrieve the model for a bound value. | |
string | getForeignKey() Get the default foreign key name for the model. | |
int | getPerPage() Get the number of models to return per page. | |
$this | setPerPage(int $perPage) Set the number of models to return per page. | |
mixed | __get(string $key) Dynamically retrieve attributes on the model. | |
void | __set(string $key, mixed $value) Dynamically set attributes on the model. | |
bool | offsetExists(mixed $offset) Determine if the given attribute exists. | |
mixed | offsetGet(mixed $offset) Get the value for a given offset. | |
void | offsetSet(mixed $offset, mixed $value) Set the value for a given offset. | |
void | offsetUnset(mixed $offset) Unset the value for a given offset. | |
bool | __isset(string $key) Determine if an attribute or relation exists on the model. | |
void | __unset(string $key) Unset an attribute on the model. | |
mixed | __call(string $method, array $parameters) Handle dynamic method calls into the model. | |
static mixed | __callStatic(string $method, array $parameters) Handle dynamic static method calls into the method. | |
string | __toString() Convert the model to its string representation. | |
void | __wakeup() When a model is being unserialized, check if it needs to be booted. |
Details
array attributesToArray()
Convert the model's attributes to an array.
protected array addDateAttributesToArray(array $attributes)
Add the date attributes to the attributes array.
protected array addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)
Add the mutated attributes to the attributes array.
protected array addCastAttributesToArray(array $attributes, array $mutatedAttributes)
Add the casted attributes to the attributes array.
protected array getArrayableAttributes()
Get an attribute array of all arrayable attributes.
protected array getArrayableAppends()
Get all of the appendable values that are arrayable.
array relationsToArray()
Get the model's relationships in array form.
protected array getArrayableRelations()
Get an attribute array of all arrayable relations.
protected array getArrayableItems(array $values)
Get an attribute array of all arrayable values.
mixed getAttribute(string $key)
Get an attribute from the model.
mixed getAttributeValue(string $key)
Get a plain attribute (not a relationship).
protected mixed getAttributeFromArray(string $key)
Get an attribute from the $attributes array.
mixed getRelationValue(string $key)
Get a relationship.
protected mixed getRelationshipFromMethod(string $method)
Get a relationship value from a method.
bool hasGetMutator(string $key)
Determine if a get mutator exists for an attribute.
protected mixed mutateAttribute(string $key, mixed $value)
Get the value of an attribute using its mutator.
protected mixed mutateAttributeForArray(string $key, mixed $value)
Get the value of an attribute using its mutator for array conversion.
protected mixed castAttribute(string $key, mixed $value)
Cast an attribute to a native PHP type.
protected string getCastType(string $key)
Get the type of cast for a model attribute.
protected bool isCustomDateTimeCast(string $cast)
Determine if the cast type is a custom date time cast.
mixed setAttribute(string $key, mixed $value)
Set a given attribute on the model.
bool hasSetMutator(string $key)
Determine if a set mutator exists for an attribute.
protected mixed setMutatedAttributeValue(string $key, mixed $value)
Set the value of an attribute using its mutator.
protected bool isDateAttribute(string $key)
Determine if the given attribute is a date or date castable.
$this fillJsonAttribute(string $key, mixed $value)
Set a given JSON attribute on the model.
protected $this getArrayAttributeWithValue(string $path, string $key, mixed $value)
Get an array attribute with the given key and value set.
protected array getArrayAttributeByKey(string $key)
Get an array attribute or return an empty array if it is not set.
protected string castAttributeAsJson(string $key, mixed $value)
Cast the given attribute to JSON.
protected string asJson(mixed $value)
Encode the given value as JSON.
mixed fromFloat(mixed $value)
Decode the given float.
mixed fromJson(string $value, bool $asObject = false)
Decode the given JSON back into an array or object.
protected Carbon asDate(mixed $value)
Return a timestamp as DateTime object with time set to 00:00:00.
protected Carbon asDateTime(mixed $value)
Return a timestamp as DateTime object.
protected bool isStandardDateFormat(string $value)
Determine if the given value is a standard date format.
string fromDateTime(DateTime|int $value)
Convert a DateTime to a storable string.
protected int asTimestamp(mixed $value)
Return a timestamp as unix timestamp.
protected string serializeDate(DateTimeInterface $date)
Prepare a date for array / JSON serialization.
array getDates()
Get the attributes that should be converted to dates.
string getDateFormat()
Get the format for database stored dates.
$this setDateFormat(string $format)
Set the date format used by the model.
bool hasCast(string $key, array|string|null $types = null)
Determine whether an attribute should be cast to a native type.
array getCasts()
Get the casts array.
protected bool isDateCastable(string $key)
Determine whether a value is Date / DateTime castable for inbound manipulation.
protected bool isJsonCastable(string $key)
Determine whether a value is JSON castable for inbound manipulation.
array getAttributes()
Get all of the current attributes on the model.
$this setRawAttributes(array $attributes, bool $sync = false)
Set the array of model attributes. No checking is done.
mixed|array getOriginal(string|null $key = null, mixed $default = null)
Get the model's original attribute values.
array only(array|mixed $attributes)
Get a subset of the model's attributes.
$this syncOriginal()
Sync the original attributes with the current.
$this syncOriginalAttribute(string $attribute)
Sync a single original attribute with its current value.
$this syncChanges()
Sync the changed attributes.
bool isDirty(array|string|null $attributes = null)
Determine if the model or given attribute(s) have been modified.
bool isClean(array|string|null $attributes = null)
Determine if the model or given attribute(s) have remained the same.
bool wasChanged(array|string|null $attributes = null)
Determine if the model or given attribute(s) have been modified.
protected bool hasChanges(array $changes, array|string|null $attributes = null)
Determine if the given attributes were changed.
array getDirty()
Get the attributes that have been changed since last sync.
array getChanges()
Get the attributes that were changed.
protected bool originalIsEquivalent(string $key, mixed $current)
Determine if the new and old values for a given key are equivalent.
$this append(array|string $attributes)
Append attributes to query when building a query.
$this setAppends(array $appends)
Set the accessors to append to model arrays.
array getMutatedAttributes()
Get the mutated attributes for a given instance.
static void cacheMutatedAttributes(string $class)
Extract and cache all the mutated attributes of a class.
static protected array getMutatorMethods(mixed $class)
Get all of the attribute mutator methods.
static void observe(object|array|string $classes)
Register observers with the model.
protected void registerObserver(object|string $class)
Register a single observer with the model.
array getObservableEvents()
Get the observable event names.
$this setObservableEvents(array $observables)
Set the observable event names.
void addObservableEvents(array|mixed $observables)
Add an observable event name.
void removeObservableEvents(array|mixed $observables)
Remove an observable event name.
static protected void registerModelEvent(string $event, Closure|string $callback)
Register a model event with the dispatcher.
protected mixed fireModelEvent(string $event, bool $halt = true)
Fire the given event for the model.
protected mixed|null fireCustomModelEvent(string $event, string $method)
Fire a custom model event for the given event.
protected mixed filterModelEventResults(mixed $result)
Filter the model event results.
static void retrieved(Closure|string $callback)
Register a retrieved model event with the dispatcher.
static void saving(Closure|string $callback)
Register a saving model event with the dispatcher.
static void saved(Closure|string $callback)
Register a saved model event with the dispatcher.
static void updating(Closure|string $callback)
Register an updating model event with the dispatcher.
static void updated(Closure|string $callback)
Register an updated model event with the dispatcher.
static void creating(Closure|string $callback)
Register a creating model event with the dispatcher.
static void created(Closure|string $callback)
Register a created model event with the dispatcher.
static void deleting(Closure|string $callback)
Register a deleting model event with the dispatcher.
static void deleted(Closure|string $callback)
Register a deleted model event with the dispatcher.
static void flushEventListeners()
Remove all of the event listeners for the model.
static Dispatcher getEventDispatcher()
Get the event dispatcher instance.
static void setEventDispatcher(Dispatcher $dispatcher)
Set the event dispatcher instance.
static void unsetEventDispatcher()
Unset the event dispatcher for models.
static mixed addGlobalScope(Scope|Closure|string $scope, Closure $implementation = null)
Register a new global scope on the model.
static bool hasGlobalScope(Scope|string $scope)
Determine if a model has a global scope.
static Scope|Closure|null getGlobalScope(Scope|string $scope)
Get a global scope registered with the model.
array getGlobalScopes()
Get the global scopes for this class instance.
HasOne hasOne(string $related, string $foreignKey = null, string $localKey = null)
Define a one-to-one relationship.
protected HasOne newHasOne(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasOne relationship.
MorphOne morphOne(string $related, string $name, string $type = null, string $id = null, string $localKey = null)
Define a polymorphic one-to-one relationship.
protected MorphOne newMorphOne(Builder $query, Model $parent, string $type, string $id, string $localKey)
Instantiate a new MorphOne relationship.
BelongsTo belongsTo(string $related, string $foreignKey = null, string $ownerKey = null, string $relation = null)
Define an inverse one-to-one or many relationship.
protected BelongsTo newBelongsTo(Builder $query, Model $child, string $foreignKey, string $ownerKey, string $relation)
Instantiate a new BelongsTo relationship.
MorphTo morphTo(string $name = null, string $type = null, string $id = null, string $ownerKey = null)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo morphEagerTo(string $name, string $type, string $id, string $ownerKey)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo morphInstanceTo(string $target, string $name, string $type, string $id, string $ownerKey)
Define a polymorphic, inverse one-to-one or many relationship.
protected MorphTo newMorphTo(Builder $query, Model $parent, string $foreignKey, string $ownerKey, string $type, string $relation)
Instantiate a new MorphTo relationship.
static string getActualClassNameForMorph(string $class)
Retrieve the actual class name for a given morph class.
protected string guessBelongsToRelation()
Guess the "belongs to" relationship name.
HasMany hasMany(string $related, string $foreignKey = null, string $localKey = null)
Define a one-to-many relationship.
protected HasMany newHasMany(Builder $query, Model $parent, string $foreignKey, string $localKey)
Instantiate a new HasMany relationship.
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.
protected HasManyThrough newHasManyThrough(Builder $query, Model $farParent, Model $throughParent, string $firstKey, string $secondKey, string $localKey, string $secondLocalKey)
Instantiate a new HasManyThrough relationship.
MorphMany morphMany(string $related, string $name, string $type = null, string $id = null, string $localKey = null)
Define a polymorphic one-to-many relationship.
protected MorphMany newMorphMany(Builder $query, Model $parent, string $type, string $id, string $localKey)
Instantiate a new MorphMany relationship.
BelongsToMany belongsToMany(string $related, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null, string $relation = null)
Define a many-to-many relationship.
protected BelongsToMany newBelongsToMany(Builder $query, Model $parent, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string $relationName = null)
Instantiate a new BelongsToMany relationship.
MorphToMany morphToMany(string $related, string $name, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null, bool $inverse = false)
Define a polymorphic many-to-many relationship.
protected MorphToMany newMorphToMany(Builder $query, Model $parent, string $name, string $table, string $foreignPivotKey, string $relatedPivotKey, string $parentKey, string $relatedKey, string $relationName = null, bool $inverse = false)
Instantiate a new MorphToMany relationship.
MorphToMany morphedByMany(string $related, string $name, string $table = null, string $foreignPivotKey = null, string $relatedPivotKey = null, string $parentKey = null, string $relatedKey = null)
Define a polymorphic, inverse many-to-many relationship.
protected string guessBelongsToManyRelation()
Get the relationship name of the belongs to many.
string joiningTable(string $related, Model|null $instance = null)
Get the joining table name for a many-to-many relation.
string joiningTableSegment()
Get this model's half of the intermediate table name for belongsToMany relationships.
bool touches(string $relation)
Determine if the model touches a given relation.
void touchOwners()
Touch the owning relations of the model.
protected array getMorphs(string $name, string $type, string $id)
Get the polymorphic relationship columns.
string getMorphClass()
Get the class name for polymorphic relations.
protected mixed newRelatedInstance(string $class)
Create a new model instance for a related model.
array getRelations()
Get all the loaded relations for the instance.
mixed getRelation(string $relation)
Get a specified relationship.
bool relationLoaded(string $key)
Determine if the given relation is loaded.
$this setRelation(string $relation, mixed $value)
Set the given relationship on the model.
$this unsetRelation(string $relation)
Unset a loaded relationship.
$this setRelations(array $relations)
Set the entire relations array on the model.
array getTouchedRelations()
Get the relationships that are touched on save.
$this setTouchedRelations(array $touches)
Set the relationships that are touched on save.
bool touch()
Update the model's update timestamp.
protected void updateTimestamps()
Update the creation and update timestamps.
$this setCreatedAt(mixed $value)
Set the value of the "created at" attribute.
$this setUpdatedAt(mixed $value)
Set the value of the "updated at" attribute.
Carbon freshTimestamp()
Get a fresh timestamp for the model.
string freshTimestampString()
Get a fresh timestamp for the model.
bool usesTimestamps()
Determine if the model uses timestamps.
string getCreatedAtColumn()
Get the name of the "created at" column.
string getUpdatedAtColumn()
Get the name of the "updated at" column.
array getHidden()
Get the hidden attributes for the model.
$this setHidden(array $hidden)
Set the hidden attributes for the model.
void addHidden(array|string|null $attributes = null)
Add hidden attributes for the model.
array getVisible()
Get the visible attributes for the model.
$this setVisible(array $visible)
Set the visible attributes for the model.
void addVisible(array|string|null $attributes = null)
Add visible attributes for the model.
$this makeVisible(array|string $attributes)
Make the given, typically hidden, attributes visible.
$this makeHidden(array|string $attributes)
Make the given, typically visible, attributes hidden.
array getFillable()
Get the fillable attributes for the model.
$this fillable(array $fillable)
Set the fillable attributes for the model.
array getGuarded()
Get the guarded attributes for the model.
$this guard(array $guarded)
Set the guarded attributes for the model.
static void unguard(bool $state = true)
Disable all mass assignable restrictions.
static void reguard()
Enable the mass assignment restrictions.
static bool isUnguarded()
Determine if current state is "unguarded".
static mixed unguarded(callable $callback)
Run the given callable while being unguarded.
bool isFillable(string $key)
Determine if the given attribute may be mass assigned.
bool isGuarded(string $key)
Determine if the given key is guarded.
bool totallyGuarded()
Determine if the model is totally guarded.
protected array fillableFromArray(array $attributes)
Get the fillable attributes of a given array.
protected mixed forwardCallTo(mixed $object, string $method, array $parameters)
Forward a method call to the given object.
static protected void throwBadMethodCallException(string $method)
Throw a bad method call exception for the given method.
void __construct(array $attributes = [])
Create a new Eloquent model instance.
protected void bootIfNotBooted()
Check if the model needs to be booted and if so, do it.
static protected void boot()
The "booting" method of the model.
static protected void bootTraits()
Boot all of the bootable traits on the model.
protected void initializeTraits()
Initialize any initializable traits on the model.
static void clearBootedModels()
Clear the list of booted models so they will be re-booted.
static void withoutTouching(callable $callback)
Disables relationship model touching for the current class during given callback scope.
static void withoutTouchingOn(array $models, callable $callback)
Disables relationship model touching for the given model classes during given callback scope.
static bool isIgnoringTouch(string|null $class = null)
Determine if the given model is ignoring touches.
$this fill(array $attributes)
Fill the model with an array of attributes.
$this forceFill(array $attributes)
Fill the model with an array of attributes. Force mass assignment.
string qualifyColumn(string $column)
Qualify the given column name by the model's table.
protected string removeTableFromKey(string $key)
Remove the table name from a given key.
Model newInstance(array $attributes = [], bool $exists = false)
Create a new instance of the given model.
Model newFromBuilder(array $attributes = [], string|null $connection = null)
Create a new model instance that is existing.
static Builder on(string|null $connection = null)
Begin querying the model on a given connection.
static Builder onWriteConnection()
Begin querying the model on the write connection.
static Collection|Model[] all(array|mixed $columns = ['*'])
Get all of the models from the database.
$this load(array|string $relations)
Eager load relations on the model.
$this loadMissing(array|string $relations)
Eager load relations on the model if they are not already eager loaded.
protected int increment(string $column, float|int $amount = 1, array $extra = [])
Increment a column's value by a given amount.
protected int decrement(string $column, float|int $amount = 1, array $extra = [])
Decrement a column's value by a given amount.
protected int incrementOrDecrement(string $column, float|int $amount, array $extra, string $method)
Run the increment or decrement method on the model.
protected void incrementOrDecrementAttributeValue(string $column, float|int $amount, array $extra, string $method)
Increment the underlying attribute value and sync with original.
bool update(array $attributes = [], array $options = [])
Update the model in the database.
bool push()
Save the model and all of its relationships.
bool save(array $options = [])
Save the model to the database.
bool saveOrFail(array $options = [])
Save the model to the database using transaction.
protected void finishSave(array $options)
Perform any actions that are necessary after the model is saved.
protected bool performUpdate(Builder $query)
Perform a model update operation.
protected mixed getKeyForSaveQuery()
Get the primary key value for a save query.
protected bool performInsert(Builder $query)
Perform a model insert operation.
protected void insertAndSetId(Builder $query, array $attributes)
Insert the given attributes and set the ID on the model.
static int destroy(Collection|array|int $ids)
Destroy the models for the given IDs.
bool|null delete()
Delete the model from the database.
bool|null forceDelete()
Force a hard delete on a soft deleted model.
This method protects developers from running forceDelete when trait is missing.
protected void performDeleteOnModel()
Perform the actual delete query on this model instance.
static Builder query()
Begin querying the model.
Builder newQuery()
Get a new query builder for the model's table.
Builder|Model newModelQuery()
Get a new query builder that doesn't have any global scopes or eager loading.
Builder newQueryWithoutRelationships()
Get a new query builder with no relationships loaded.
Builder registerGlobalScopes(Builder $builder)
Register the global scopes for this builder instance.
Builder newQueryForRestoration(array|int $ids)
Get a new query to restore one or more models by their queueable IDs.
protected Builder newBaseQueryBuilder()
Get a new query builder instance for the connection.
Collection newCollection(array $models = [])
Create a new Eloquent Collection instance.
Pivot newPivot(Model $parent, array $attributes, string $table, bool $exists, string|null $using = null)
Create a new pivot model instance.
array toArray()
Convert the model instance to an array.
string toJson(int $options = 0)
Convert the model instance to JSON.
array jsonSerialize()
Convert the object into something JSON serializable.
Model|null fresh(array|string $with = [])
Reload a fresh model instance from the database.
$this refresh()
Reload the current model instance with fresh attributes from the database.
Model replicate(array $except = null)
Clone the model into a new, non-existing instance.
bool is(Model|null $model)
Determine if two models have the same ID and belong to the same table.
bool isNot(Model|null $model)
Determine if two models are not the same.
Connection getConnection()
Get the database connection for the model.
string getConnectionName()
Get the current connection name for the model.
$this setConnection(string $name)
Set the connection associated with the model.
static Connection resolveConnection(string|null $connection = null)
Resolve a connection instance.
static ConnectionResolverInterface getConnectionResolver()
Get the connection resolver instance.
static void setConnectionResolver(ConnectionResolverInterface $resolver)
Set the connection resolver instance.
static void unsetConnectionResolver()
Unset the connection resolver for models.
string getTable()
Get the table associated with the model.
$this setTable(string $table)
Set the table associated with the model.
string getKeyName()
Get the primary key for the model.
$this setKeyName(string $key)
Set the primary key for the model.
string getQualifiedKeyName()
Get the table qualified key name.
string getKeyType()
Get the auto-incrementing key type.
$this setKeyType(string $type)
Set the data type for the primary key.
bool getIncrementing()
Get the value indicating whether the IDs are incrementing.
$this setIncrementing(bool $value)
Set whether IDs are incrementing.
mixed getKey()
Get the value of the model's primary key.
mixed getQueueableId()
Get the queueable identity for the entity.
array getQueueableRelations()
Get the queueable relationships for the entity.
string|null getQueueableConnection()
Get the queueable connection for the entity.
mixed getRouteKey()
Get the value of the model's route key.
string getRouteKeyName()
Get the route key for the model.
Model|null resolveRouteBinding(mixed $value)
Retrieve the model for a bound value.
string getForeignKey()
Get the default foreign key name for the model.
int getPerPage()
Get the number of models to return per page.
$this setPerPage(int $perPage)
Set the number of models to return per page.
mixed __get(string $key)
Dynamically retrieve attributes on the model.
void __set(string $key, mixed $value)
Dynamically set attributes on the model.
bool offsetExists(mixed $offset)
Determine if the given attribute exists.
mixed offsetGet(mixed $offset)
Get the value for a given offset.
void offsetSet(mixed $offset, mixed $value)
Set the value for a given offset.
void offsetUnset(mixed $offset)
Unset the value for a given offset.
bool __isset(string $key)
Determine if an attribute or relation exists on the model.
void __unset(string $key)
Unset an attribute on the model.
mixed __call(string $method, array $parameters)
Handle dynamic method calls into the model.
static mixed __callStatic(string $method, array $parameters)
Handle dynamic static method calls into the method.
string __toString()
Convert the model to its string representation.
void __wakeup()
When a model is being unserialized, check if it needs to be booted.
© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.7/Illuminate/Database/Eloquent/Model.html