Model

class Model implements ArrayAccess, Arrayable, Jsonable, JsonSerializable, QueueableEntity, UrlRoutable (View source)

Constants

CREATED_AT

The name of the "created at" column.

UPDATED_AT

The name of the "updated at" column.

Properties

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 int $perPage The number of models to return for pagination.
bool $incrementing Indicates if the IDs are auto-incrementing.
bool $timestamps Indicates if the model should be timestamped.
protected array $attributes The model's attributes.
protected array $original The model attribute's original state.
protected array $relations The loaded relationships for the model.
protected array $hidden The attributes that should be hidden for arrays.
protected array $visible The attributes that should be visible in arrays.
protected array $appends The accessors to append to the model's array form.
protected array $fillable The attributes that are mass assignable.
protected array $guarded The attributes that aren't mass assignable.
protected array $dates The attributes that should be mutated to dates.
protected string $dateFormat The storage format of the model's date columns.
protected array $casts The attributes that should be cast to native types.
protected array $touches The relationships that should be touched on save.
protected array $observables User exposed observable events.
protected array $with The relations to eager load on every query.
protected string $morphClass The class name to be used in polymorphic relations.
bool $exists Indicates if the model exists.
bool $wasRecentlyCreated Indicates if the model was inserted during the current request lifecycle.
static bool $snakeAttributes Indicates whether attributes are snake cased on arrays.
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 $globalScopes The array of global scopes on the model.
static protected bool $unguarded Indicates if all mass assignment is enabled.
static protected array $mutatorCache The cache of the mutated attributes for each class.
static array $manyMethods The many to many relationship methods.

Methods

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.

static void clearBootedModels()

Clear the list of booted models so they will be re-booted.

static void addGlobalScope(ScopeInterface $scope)

Register a new global scope on the model.

static bool hasGlobalScope(ScopeInterface $scope)

Determine if a model has a global scope.

static ScopeInterface|null getGlobalScope(ScopeInterface $scope)

Get a global scope registered with the model.

array getGlobalScopes()

Get the global scopes for this class instance.

static void observe(object|string $class, int $priority)

Register an observer with the Model.

$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.

array fillableFromArray(array $attributes)

Get the fillable attributes of a given array.

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 Collection hydrate(array $items, string|null $connection = null)

Create a collection of models from plain arrays.

static Collection hydrateRaw(string $query, array $bindings = [], string|null $connection = null)

Create a collection of models from a raw query.

static Model create(array $attributes = [])

Save a new model and return the instance.

static Model forceCreate(array $attributes)

Save a new model and return the instance. Allow mass-assignment.

static Builder query()

Begin querying the model.

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.

Model|null fresh(array $with = [])

Reload a fresh model instance from the database.

$this load(array|string $relations)

Eager load relations on the model.

static Builder|Model with(array|string $relations)

Begin querying a model with eager loading.

$this append(array|string $attributes)

Append attributes to query when building a query.

HasOne hasOne(string $related, string $foreignKey = null, string $localKey = null)

Define a one-to-one relationship.

MorphOne morphOne(string $related, string $name, string $type = null, string $id = null, string $localKey = null)

Define a polymorphic one-to-one relationship.

BelongsTo belongsTo(string $related, string $foreignKey = null, string $otherKey = null, string $relation = null)

Define an inverse one-to-one or many relationship.

MorphTo morphTo(string $name = null, string $type = null, string $id = null)

Define a polymorphic, inverse one-to-one or many relationship.

string getActualClassNameForMorph(string $class)

Retrieve the fully qualified class name from a slug.

HasMany hasMany(string $related, string $foreignKey = null, string $localKey = null)

Define a one-to-many relationship.

HasManyThrough hasManyThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null)

Define a has-many-through relationship.

MorphMany morphMany(string $related, string $name, string $type = null, string $id = null, string $localKey = null)

Define a polymorphic one-to-many relationship.

BelongsToMany belongsToMany(string $related, string $table = null, string $foreignKey = null, string $otherKey = null, string $relation = null)

Define a many-to-many relationship.

MorphToMany morphToMany(string $related, string $name, string $table = null, string $foreignKey = null, string $otherKey = null, bool $inverse = false)

Define a polymorphic many-to-many relationship.

MorphToMany morphedByMany(string $related, string $name, string $table = null, string $foreignKey = null, string $otherKey = null)

Define a polymorphic, inverse many-to-many relationship.

string getBelongsToManyCaller()

Get the relationship name of the belongs to many.

string joiningTable(string $related)

Get the joining table name for a many-to-many relation.

static int destroy(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 void saving(Closure|string $callback, int $priority)

Register a saving model event with the dispatcher.

static void saved(Closure|string $callback, int $priority)

Register a saved model event with the dispatcher.

static void updating(Closure|string $callback, int $priority)

Register an updating model event with the dispatcher.

static void updated(Closure|string $callback, int $priority)

Register an updated model event with the dispatcher.

static void creating(Closure|string $callback, int $priority)

Register a creating model event with the dispatcher.

static void created(Closure|string $callback, int $priority)

Register a created model event with the dispatcher.

static void deleting(Closure|string $callback, int $priority)

Register a deleting model event with the dispatcher.

static void deleted(Closure|string $callback, int $priority)

Register a deleted model event with the dispatcher.

static void flushEventListeners()

Remove all of the event listeners for the model.

static void registerModelEvent(string $event, Closure|string $callback, int $priority)

Register a model event with the dispatcher.

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.

int increment(string $column, int $amount = 1)

Increment a column's value by a given amount.

int decrement(string $column, int $amount = 1)

Decrement a column's value by a given amount.

int incrementOrDecrement(string $column, int $amount, string $method)

Run the increment or decrement method on the model.

void incrementOrDecrementAttributeValue(string $column, int $amount, string $method)

Increment the underlying attribute value and sync with original.

bool|int update(array $attributes = [])

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)

Finish processing on a successful save operation.

bool performUpdate(Builder $query, array $options = [])

Perform a model update operation.

bool performInsert(Builder $query, array $options = [])

Perform a model insert operation.

void insertAndSetId(Builder $query, array $attributes)

Insert the given attributes and set the ID on the model.

void touchOwners()

Touch the owning relations of the model.

bool touches(string $relation)

Determine if the model touches a given relation.

mixed fireModelEvent(string $event, bool $halt = true)

Fire the given event for the model.

Builder setKeysForSaveQuery(Builder $query)

Set the keys for a save update query.

mixed getKeyForSaveQuery()

Get the primary key value for a save query.

bool touch()

Update the model's update timestamp.

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.

string getCreatedAtColumn()

Get the name of the "created at" column.

string getUpdatedAtColumn()

Get the name of the "updated at" column.

Carbon freshTimestamp()

Get a fresh timestamp for the model.

string freshTimestampString()

Get a fresh timestamp for the model.

Builder newQuery()

Get a new query builder for the model's table.

Builder newQueryWithoutScope(ScopeInterface $scope)

Get a new query instance without a given scope.

Builder|Model newQueryWithoutScopes()

Get a new query builder that doesn't have any global scopes.

Builder applyGlobalScopes(Builder $builder)

Apply all of the global scopes to an Eloquent builder.

Builder removeGlobalScopes(Builder $builder)

Remove all of the global scopes from an Eloquent builder.

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)

Create a new pivot model instance.

string getTable()

Get the table associated with the model.

$this setTable(string $table)

Set the table associated with the model.

mixed getKey()

Get the value of the model's primary key.

mixed getQueueableId()

Get the queueable identity for the entity.

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.

mixed getRouteKey()

Get the value of the model's route key.

string getRouteKeyName()

Get the route key for the model.

bool usesTimestamps()

Determine if the model uses timestamps.

array getMorphs(string $name, string $type, string $id)

Get the polymorphic relationship columns.

string getMorphClass()

Get the class name for polymorphic relations.

int getPerPage()

Get the number of models to return per page.

$this setPerPage(int $perPage)

Set the number of models to return per page.

string getForeignKey()

Get the default foreign key name for the model.

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.

$this withHidden(array|string $attributes)

Make the given, typically hidden, attributes visible.

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 setAppends(array $appends)

Set the accessors to append to model arrays.

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.

string removeTableFromKey(string $key)

Remove the table name from a given key.

array getTouchedRelations()

Get the relationships that are touched on save.

$this setTouchedRelations(array $touches)

Set the relationships that are touched on save.

bool getIncrementing()

Get the value indicating whether the IDs are incrementing.

$this setIncrementing(bool $value)

Set whether IDs are incrementing.

string toJson(int $options)

Convert the model instance to JSON.

array jsonSerialize()

Convert the object into something JSON serializable.

array toArray()

Convert the model instance to an array.

array attributesToArray()

Convert the model's attributes to an array.

array getArrayableAttributes()

Get an attribute array of all arrayable attributes.

array getArrayableAppends()

Get all of the appendable values that are arrayable.

array relationsToArray()

Get the model's relationships in array form.

array getArrayableRelations()

Get an attribute array of all arrayable relations.

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).

mixed getRelationValue(string $key)

Get a relationship.

mixed getAttributeFromArray(string $key)

Get an attribute from the $attributes array.

mixed getRelationshipFromMethod(string $method)

Get a relationship value from a method.

bool hasGetMutator(string $key)

Determine if a get mutator exists for an attribute.

mixed mutateAttribute(string $key, mixed $value)

Get the value of an attribute using its mutator.

mixed mutateAttributeForArray(string $key, mixed $value)

Get the value of an attribute using its mutator for array conversion.

bool hasCast(string $key)

Determine whether an attribute should be cast to a native type.

bool isDateCastable(string $key)

Determine whether a value is Date / DateTime castable for inbound manipulation.

bool isJsonCastable(string $key)

Determine whether a value is JSON castable for inbound manipulation.

string getCastType(string $key)

Get the type of cast for a model attribute.

mixed castAttribute(string $key, mixed $value)

Cast an attribute to a native PHP type.

$this 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.

array getDates()

Get the attributes that should be converted to dates.

string fromDateTime(DateTime|int $value)

Convert a DateTime to a storable string.

Carbon asDateTime(mixed $value)

Return a timestamp as DateTime object.

string serializeDate(DateTime $date)

Prepare a date for array / JSON serialization.

string getDateFormat()

Get the format for database stored dates.

$this setDateFormat(string $format)

Set the date format used by the model.

string asJson(mixed $value)

Encode the given value as JSON.

mixed fromJson(string $value, bool $asObject = false)

Decode the given JSON back into an array or object.

Model replicate(array $except = null)

Clone the model into a new, non-existing instance.

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.

array getOriginal(string|null $key = null, mixed $default = null)

Get the model's original attribute values.

$this syncOriginal()

Sync the original attributes with the current.

$this syncOriginalAttribute(string $attribute)

Sync a single original attribute with its current value.

bool isDirty(array|string|null $attributes = null)

Determine if the model or given attribute(s) have been modified.

array getDirty()

Get the attributes that have been changed since last sync.

bool originalIsNumericallyEquivalent(string $key)

Determine if the new and old values for a given key are numerically equivalent.

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 specific relationship in the model.

$this setRelations(array $relations)

Set the entire relations array on the model.

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.

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.

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.

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

void __construct(array $attributes = [])

Create a new Eloquent model instance.

Parameters

array $attributes

Return Value

void

protected void bootIfNotBooted()

Check if the model needs to be booted and if so, do it.

Return Value

void

static protected void boot()

The "booting" method of the model.

Return Value

void

static protected void bootTraits()

Boot all of the bootable traits on the model.

Return Value

void

static void clearBootedModels()

Clear the list of booted models so they will be re-booted.

Return Value

void

static void addGlobalScope(ScopeInterface $scope)

Register a new global scope on the model.

Parameters

ScopeInterface $scope

Return Value

void

static bool hasGlobalScope(ScopeInterface $scope)

Determine if a model has a global scope.

Parameters

ScopeInterface $scope

Return Value

bool

static ScopeInterface|null getGlobalScope(ScopeInterface $scope)

Get a global scope registered with the model.

Parameters

ScopeInterface $scope

Return Value

ScopeInterface|null

array getGlobalScopes()

Get the global scopes for this class instance.

Return Value

array

static void observe(object|string $class, int $priority)

Register an observer with the Model.

Parameters

object|string $class
int $priority

Return Value

void

$this fill(array $attributes)

Fill the model with an array of attributes.

Parameters

array $attributes

Return Value

$this

Exceptions

MassAssignmentException

$this forceFill(array $attributes)

Fill the model with an array of attributes. Force mass assignment.

Parameters

array $attributes

Return Value

$this

protected array fillableFromArray(array $attributes)

Get the fillable attributes of a given array.

Parameters

array $attributes

Return Value

array

Model newInstance(array $attributes = [], bool $exists = false)

Create a new instance of the given model.

Parameters

array $attributes
bool $exists

Return Value

Model

Model newFromBuilder(array $attributes = [], string|null $connection = null)

Create a new model instance that is existing.

Parameters

array $attributes
string|null $connection

Return Value

Model

static Collection hydrate(array $items, string|null $connection = null)

Create a collection of models from plain arrays.

Parameters

array $items
string|null $connection

Return Value

Collection

static Collection hydrateRaw(string $query, array $bindings = [], string|null $connection = null)

Create a collection of models from a raw query.

Parameters

string $query
array $bindings
string|null $connection

Return Value

Collection

static Model create(array $attributes = [])

Save a new model and return the instance.

Parameters

array $attributes

Return Value

Model

static Model forceCreate(array $attributes)

Save a new model and return the instance. Allow mass-assignment.

Parameters

array $attributes

Return Value

Model

static Builder query()

Begin querying the model.

Return Value

Builder

static Builder on(string|null $connection = null)

Begin querying the model on a given connection.

Parameters

string|null $connection

Return Value

Builder

static Builder onWriteConnection()

Begin querying the model on the write connection.

Return Value

Builder

static Collection|Model[] all(array|mixed $columns = ['*'])

Get all of the models from the database.

Parameters

array|mixed $columns

Return Value

Collection|Model[]

Model|null fresh(array $with = [])

Reload a fresh model instance from the database.

Parameters

array $with

Return Value

Model|null

$this load(array|string $relations)

Eager load relations on the model.

Parameters

array|string $relations

Return Value

$this

static Builder|Model with(array|string $relations)

Begin querying a model with eager loading.

Parameters

array|string $relations

Return Value

Builder|Model

$this append(array|string $attributes)

Append attributes to query when building a query.

Parameters

array|string $attributes

Return Value

$this

HasOne hasOne(string $related, string $foreignKey = null, string $localKey = null)

Define a one-to-one relationship.

Parameters

string $related
string $foreignKey
string $localKey

Return Value

HasOne

MorphOne morphOne(string $related, string $name, string $type = null, string $id = null, string $localKey = null)

Define a polymorphic one-to-one relationship.

Parameters

string $related
string $name
string $type
string $id
string $localKey

Return Value

MorphOne

BelongsTo belongsTo(string $related, string $foreignKey = null, string $otherKey = null, string $relation = null)

Define an inverse one-to-one or many relationship.

Parameters

string $related
string $foreignKey
string $otherKey
string $relation

Return Value

BelongsTo

MorphTo morphTo(string $name = null, string $type = null, string $id = null)

Define a polymorphic, inverse one-to-one or many relationship.

Parameters

string $name
string $type
string $id

Return Value

MorphTo

string getActualClassNameForMorph(string $class)

Retrieve the fully qualified class name from a slug.

Parameters

string $class

Return Value

string

HasMany hasMany(string $related, string $foreignKey = null, string $localKey = null)

Define a one-to-many relationship.

Parameters

string $related
string $foreignKey
string $localKey

Return Value

HasMany

HasManyThrough hasManyThrough(string $related, string $through, string|null $firstKey = null, string|null $secondKey = null, string|null $localKey = null)

Define a has-many-through relationship.

Parameters

string $related
string $through
string|null $firstKey
string|null $secondKey
string|null $localKey

Return Value

HasManyThrough

MorphMany morphMany(string $related, string $name, string $type = null, string $id = null, string $localKey = null)

Define a polymorphic one-to-many relationship.

Parameters

string $related
string $name
string $type
string $id
string $localKey

Return Value

MorphMany

BelongsToMany belongsToMany(string $related, string $table = null, string $foreignKey = null, string $otherKey = null, string $relation = null)

Define a many-to-many relationship.

Parameters

string $related
string $table
string $foreignKey
string $otherKey
string $relation

Return Value

BelongsToMany

MorphToMany morphToMany(string $related, string $name, string $table = null, string $foreignKey = null, string $otherKey = null, bool $inverse = false)

Define a polymorphic many-to-many relationship.

Parameters

string $related
string $name
string $table
string $foreignKey
string $otherKey
bool $inverse

Return Value

MorphToMany

MorphToMany morphedByMany(string $related, string $name, string $table = null, string $foreignKey = null, string $otherKey = null)

Define a polymorphic, inverse many-to-many relationship.

Parameters

string $related
string $name
string $table
string $foreignKey
string $otherKey

Return Value

MorphToMany

protected string getBelongsToManyCaller()

Get the relationship name of the belongs to many.

Return Value

string

string joiningTable(string $related)

Get the joining table name for a many-to-many relation.

Parameters

string $related

Return Value

string

static int destroy(array|int $ids)

Destroy the models for the given IDs.

Parameters

array|int $ids

Return Value

int

bool|null delete()

Delete the model from the database.

Return Value

bool|null

Exceptions

Exception

bool|null forceDelete()

Force a hard delete on a soft deleted model.

This method protects developers from running forceDelete when trait is missing.

Return Value

bool|null

protected void performDeleteOnModel()

Perform the actual delete query on this model instance.

Return Value

void

static void saving(Closure|string $callback, int $priority)

Register a saving model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void saved(Closure|string $callback, int $priority)

Register a saved model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void updating(Closure|string $callback, int $priority)

Register an updating model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void updated(Closure|string $callback, int $priority)

Register an updated model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void creating(Closure|string $callback, int $priority)

Register a creating model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void created(Closure|string $callback, int $priority)

Register a created model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void deleting(Closure|string $callback, int $priority)

Register a deleting model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void deleted(Closure|string $callback, int $priority)

Register a deleted model event with the dispatcher.

Parameters

Closure|string $callback
int $priority

Return Value

void

static void flushEventListeners()

Remove all of the event listeners for the model.

Return Value

void

static protected void registerModelEvent(string $event, Closure|string $callback, int $priority)

Register a model event with the dispatcher.

Parameters

string $event
Closure|string $callback
int $priority

Return Value

void

array getObservableEvents()

Get the observable event names.

Return Value

array

$this setObservableEvents(array $observables)

Set the observable event names.

Parameters

array $observables

Return Value

$this

void addObservableEvents(array|mixed $observables)

Add an observable event name.

Parameters

array|mixed $observables

Return Value

void

void removeObservableEvents(array|mixed $observables)

Remove an observable event name.

Parameters

array|mixed $observables

Return Value

void

protected int increment(string $column, int $amount = 1)

Increment a column's value by a given amount.

Parameters

string $column
int $amount

Return Value

int

protected int decrement(string $column, int $amount = 1)

Decrement a column's value by a given amount.

Parameters

string $column
int $amount

Return Value

int

protected int incrementOrDecrement(string $column, int $amount, string $method)

Run the increment or decrement method on the model.

Parameters

string $column
int $amount
string $method

Return Value

int

protected void incrementOrDecrementAttributeValue(string $column, int $amount, string $method)

Increment the underlying attribute value and sync with original.

Parameters

string $column
int $amount
string $method

Return Value

void

bool|int update(array $attributes = [])

Update the model in the database.

Parameters

array $attributes

Return Value

bool|int

bool push()

Save the model and all of its relationships.

Return Value

bool

bool save(array $options = [])

Save the model to the database.

Parameters

array $options

Return Value

bool

bool saveOrFail(array $options = [])

Save the model to the database using transaction.

Parameters

array $options

Return Value

bool

Exceptions

Throwable

protected void finishSave(array $options)

Finish processing on a successful save operation.

Parameters

array $options

Return Value

void

protected bool performUpdate(Builder $query, array $options = [])

Perform a model update operation.

Parameters

Builder $query
array $options

Return Value

bool

protected bool performInsert(Builder $query, array $options = [])

Perform a model insert operation.

Parameters

Builder $query
array $options

Return Value

bool

protected void insertAndSetId(Builder $query, array $attributes)

Insert the given attributes and set the ID on the model.

Parameters

Builder $query
array $attributes

Return Value

void

void touchOwners()

Touch the owning relations of the model.

Return Value

void

bool touches(string $relation)

Determine if the model touches a given relation.

Parameters

string $relation

Return Value

bool

protected mixed fireModelEvent(string $event, bool $halt = true)

Fire the given event for the model.

Parameters

string $event
bool $halt

Return Value

mixed

protected Builder setKeysForSaveQuery(Builder $query)

Set the keys for a save update query.

Parameters

Builder $query

Return Value

Builder

protected mixed getKeyForSaveQuery()

Get the primary key value for a save query.

Return Value

mixed

bool touch()

Update the model's update timestamp.

Return Value

bool

protected void updateTimestamps()

Update the creation and update timestamps.

Return Value

void

$this setCreatedAt(mixed $value)

Set the value of the "created at" attribute.

Parameters

mixed $value

Return Value

$this

$this setUpdatedAt(mixed $value)

Set the value of the "updated at" attribute.

Parameters

mixed $value

Return Value

$this

string getCreatedAtColumn()

Get the name of the "created at" column.

Return Value

string

string getUpdatedAtColumn()

Get the name of the "updated at" column.

Return Value

string

Carbon freshTimestamp()

Get a fresh timestamp for the model.

Return Value

Carbon

string freshTimestampString()

Get a fresh timestamp for the model.

Return Value

string

Builder newQuery()

Get a new query builder for the model's table.

Return Value

Builder

Builder newQueryWithoutScope(ScopeInterface $scope)

Get a new query instance without a given scope.

Parameters

ScopeInterface $scope

Return Value

Builder

Builder|Model newQueryWithoutScopes()

Get a new query builder that doesn't have any global scopes.

Return Value

Builder|Model

Builder applyGlobalScopes(Builder $builder)

Apply all of the global scopes to an Eloquent builder.

Parameters

Builder $builder

Return Value

Builder

Builder removeGlobalScopes(Builder $builder)

Remove all of the global scopes from an Eloquent builder.

Parameters

Builder $builder

Return Value

Builder

Builder|Model newEloquentBuilder(Builder $query)

Create a new Eloquent query builder for the model.

Parameters

Builder $query

Return Value

Builder|Model

protected Builder newBaseQueryBuilder()

Get a new query builder instance for the connection.

Return Value

Builder

Collection newCollection(array $models = [])

Create a new Eloquent Collection instance.

Parameters

array $models

Return Value

Collection

Pivot newPivot(Model $parent, array $attributes, string $table, bool $exists)

Create a new pivot model instance.

Parameters

Model $parent
array $attributes
string $table
bool $exists

Return Value

Pivot

string getTable()

Get the table associated with the model.

Return Value

string

$this setTable(string $table)

Set the table associated with the model.

Parameters

string $table

Return Value

$this

mixed getKey()

Get the value of the model's primary key.

Return Value

mixed

mixed getQueueableId()

Get the queueable identity for the entity.

Return Value

mixed

string getKeyName()

Get the primary key for the model.

Return Value

string

$this setKeyName(string $key)

Set the primary key for the model.

Parameters

string $key

Return Value

$this

string getQualifiedKeyName()

Get the table qualified key name.

Return Value

string

mixed getRouteKey()

Get the value of the model's route key.

Return Value

mixed

string getRouteKeyName()

Get the route key for the model.

Return Value

string

bool usesTimestamps()

Determine if the model uses timestamps.

Return Value

bool

protected array getMorphs(string $name, string $type, string $id)

Get the polymorphic relationship columns.

Parameters

string $name
string $type
string $id

Return Value

array

string getMorphClass()

Get the class name for polymorphic relations.

Return Value

string

int getPerPage()

Get the number of models to return per page.

Return Value

int

$this setPerPage(int $perPage)

Set the number of models to return per page.

Parameters

int $perPage

Return Value

$this

string getForeignKey()

Get the default foreign key name for the model.

Return Value

string

array getHidden()

Get the hidden attributes for the model.

Return Value

array

$this setHidden(array $hidden)

Set the hidden attributes for the model.

Parameters

array $hidden

Return Value

$this

void addHidden(array|string|null $attributes = null)

Add hidden attributes for the model.

Parameters

array|string|null $attributes

Return Value

void

$this withHidden(array|string $attributes)

Make the given, typically hidden, attributes visible.

Parameters

array|string $attributes

Return Value

$this

array getVisible()

Get the visible attributes for the model.

Return Value

array

$this setVisible(array $visible)

Set the visible attributes for the model.

Parameters

array $visible

Return Value

$this

void addVisible(array|string|null $attributes = null)

Add visible attributes for the model.

Parameters

array|string|null $attributes

Return Value

void

$this setAppends(array $appends)

Set the accessors to append to model arrays.

Parameters

array $appends

Return Value

$this

array getFillable()

Get the fillable attributes for the model.

Return Value

array

$this fillable(array $fillable)

Set the fillable attributes for the model.

Parameters

array $fillable

Return Value

$this

array getGuarded()

Get the guarded attributes for the model.

Return Value

array

$this guard(array $guarded)

Set the guarded attributes for the model.

Parameters

array $guarded

Return Value

$this

static void unguard(bool $state = true)

Disable all mass assignable restrictions.

Parameters

bool $state

Return Value

void

static void reguard()

Enable the mass assignment restrictions.

Return Value

void

static bool isUnguarded()

Determine if current state is "unguarded".

Return Value

bool

static mixed unguarded(callable $callback)

Run the given callable while being unguarded.

Parameters

callable $callback

Return Value

mixed

bool isFillable(string $key)

Determine if the given attribute may be mass assigned.

Parameters

string $key

Return Value

bool

bool isGuarded(string $key)

Determine if the given key is guarded.

Parameters

string $key

Return Value

bool

bool totallyGuarded()

Determine if the model is totally guarded.

Return Value

bool

protected string removeTableFromKey(string $key)

Remove the table name from a given key.

Parameters

string $key

Return Value

string

array getTouchedRelations()

Get the relationships that are touched on save.

Return Value

array

$this setTouchedRelations(array $touches)

Set the relationships that are touched on save.

Parameters

array $touches

Return Value

$this

bool getIncrementing()

Get the value indicating whether the IDs are incrementing.

Return Value

bool

$this setIncrementing(bool $value)

Set whether IDs are incrementing.

Parameters

bool $value

Return Value

$this

string toJson(int $options)

Convert the model instance to JSON.

Parameters

int $options

Return Value

string

array jsonSerialize()

Convert the object into something JSON serializable.

Return Value

array

array toArray()

Convert the model instance to an array.

Return Value

array

array attributesToArray()

Convert the model's attributes to an array.

Return Value

array

protected array getArrayableAttributes()

Get an attribute array of all arrayable attributes.

Return Value

array

protected array getArrayableAppends()

Get all of the appendable values that are arrayable.

Return Value

array

array relationsToArray()

Get the model's relationships in array form.

Return Value

array

protected array getArrayableRelations()

Get an attribute array of all arrayable relations.

Return Value

array

protected array getArrayableItems(array $values)

Get an attribute array of all arrayable values.

Parameters

array $values

Return Value

array

mixed getAttribute(string $key)

Get an attribute from the model.

Parameters

string $key

Return Value

mixed

mixed getAttributeValue(string $key)

Get a plain attribute (not a relationship).

Parameters

string $key

Return Value

mixed

mixed getRelationValue(string $key)

Get a relationship.

Parameters

string $key

Return Value

mixed

protected mixed getAttributeFromArray(string $key)

Get an attribute from the $attributes array.

Parameters

string $key

Return Value

mixed

protected mixed getRelationshipFromMethod(string $method)

Get a relationship value from a method.

Parameters

string $method

Return Value

mixed

Exceptions

LogicException

bool hasGetMutator(string $key)

Determine if a get mutator exists for an attribute.

Parameters

string $key

Return Value

bool

protected mixed mutateAttribute(string $key, mixed $value)

Get the value of an attribute using its mutator.

Parameters

string $key
mixed $value

Return Value

mixed

protected mixed mutateAttributeForArray(string $key, mixed $value)

Get the value of an attribute using its mutator for array conversion.

Parameters

string $key
mixed $value

Return Value

mixed

protected bool hasCast(string $key)

Determine whether an attribute should be cast to a native type.

Parameters

string $key

Return Value

bool

protected bool isDateCastable(string $key)

Determine whether a value is Date / DateTime castable for inbound manipulation.

Parameters

string $key

Return Value

bool

protected bool isJsonCastable(string $key)

Determine whether a value is JSON castable for inbound manipulation.

Parameters

string $key

Return Value

bool

protected string getCastType(string $key)

Get the type of cast for a model attribute.

Parameters

string $key

Return Value

string

protected mixed castAttribute(string $key, mixed $value)

Cast an attribute to a native PHP type.

Parameters

string $key
mixed $value

Return Value

mixed

$this setAttribute(string $key, mixed $value)

Set a given attribute on the model.

Parameters

string $key
mixed $value

Return Value

$this

bool hasSetMutator(string $key)

Determine if a set mutator exists for an attribute.

Parameters

string $key

Return Value

bool

array getDates()

Get the attributes that should be converted to dates.

Return Value

array

string fromDateTime(DateTime|int $value)

Convert a DateTime to a storable string.

Parameters

DateTime|int $value

Return Value

string

protected Carbon asDateTime(mixed $value)

Return a timestamp as DateTime object.

Parameters

mixed $value

Return Value

Carbon

protected string serializeDate(DateTime $date)

Prepare a date for array / JSON serialization.

Parameters

DateTime $date

Return Value

string

protected string getDateFormat()

Get the format for database stored dates.

Return Value

string

$this setDateFormat(string $format)

Set the date format used by the model.

Parameters

string $format

Return Value

$this

protected string asJson(mixed $value)

Encode the given value as JSON.

Parameters

mixed $value

Return Value

string

mixed fromJson(string $value, bool $asObject = false)

Decode the given JSON back into an array or object.

Parameters

string $value
bool $asObject

Return Value

mixed

Model replicate(array $except = null)

Clone the model into a new, non-existing instance.

Parameters

array $except

Return Value

Model

array getAttributes()

Get all of the current attributes on the model.

Return Value

array

$this setRawAttributes(array $attributes, bool $sync = false)

Set the array of model attributes. No checking is done.

Parameters

array $attributes
bool $sync

Return Value

$this

array getOriginal(string|null $key = null, mixed $default = null)

Get the model's original attribute values.

Parameters

string|null $key
mixed $default

Return Value

array

$this syncOriginal()

Sync the original attributes with the current.

Return Value

$this

$this syncOriginalAttribute(string $attribute)

Sync a single original attribute with its current value.

Parameters

string $attribute

Return Value

$this

bool isDirty(array|string|null $attributes = null)

Determine if the model or given attribute(s) have been modified.

Parameters

array|string|null $attributes

Return Value

bool

array getDirty()

Get the attributes that have been changed since last sync.

Return Value

array

protected bool originalIsNumericallyEquivalent(string $key)

Determine if the new and old values for a given key are numerically equivalent.

Parameters

string $key

Return Value

bool

array getRelations()

Get all the loaded relations for the instance.

Return Value

array

mixed getRelation(string $relation)

Get a specified relationship.

Parameters

string $relation

Return Value

mixed

bool relationLoaded(string $key)

Determine if the given relation is loaded.

Parameters

string $key

Return Value

bool

$this setRelation(string $relation, mixed $value)

Set the specific relationship in the model.

Parameters

string $relation
mixed $value

Return Value

$this

$this setRelations(array $relations)

Set the entire relations array on the model.

Parameters

array $relations

Return Value

$this

Connection getConnection()

Get the database connection for the model.

Return Value

Connection

string getConnectionName()

Get the current connection name for the model.

Return Value

string

$this setConnection(string $name)

Set the connection associated with the model.

Parameters

string $name

Return Value

$this

static Connection resolveConnection(string|null $connection = null)

Resolve a connection instance.

Parameters

string|null $connection

Return Value

Connection

static ConnectionResolverInterface getConnectionResolver()

Get the connection resolver instance.

static void setConnectionResolver(ConnectionResolverInterface $resolver)

Set the connection resolver instance.

Parameters

ConnectionResolverInterface $resolver

Return Value

void

static void unsetConnectionResolver()

Unset the connection resolver for models.

Return Value

void

static Dispatcher getEventDispatcher()

Get the event dispatcher instance.

Return Value

Dispatcher

static void setEventDispatcher(Dispatcher $dispatcher)

Set the event dispatcher instance.

Parameters

Dispatcher $dispatcher

Return Value

void

static void unsetEventDispatcher()

Unset the event dispatcher for models.

Return Value

void

array getMutatedAttributes()

Get the mutated attributes for a given instance.

Return Value

array

static void cacheMutatedAttributes(string $class)

Extract and cache all the mutated attributes of a class.

Parameters

string $class

Return Value

void

mixed __get(string $key)

Dynamically retrieve attributes on the model.

Parameters

string $key

Return Value

mixed

void __set(string $key, mixed $value)

Dynamically set attributes on the model.

Parameters

string $key
mixed $value

Return Value

void

bool offsetExists(mixed $offset)

Determine if the given attribute exists.

Parameters

mixed $offset

Return Value

bool

mixed offsetGet(mixed $offset)

Get the value for a given offset.

Parameters

mixed $offset

Return Value

mixed

void offsetSet(mixed $offset, mixed $value)

Set the value for a given offset.

Parameters

mixed $offset
mixed $value

Return Value

void

void offsetUnset(mixed $offset)

Unset the value for a given offset.

Parameters

mixed $offset

Return Value

void

bool __isset(string $key)

Determine if an attribute or relation exists on the model.

Parameters

string $key

Return Value

bool

void __unset(string $key)

Unset an attribute on the model.

Parameters

string $key

Return Value

void

mixed __call(string $method, array $parameters)

Handle dynamic method calls into the model.

Parameters

string $method
array $parameters

Return Value

mixed

static mixed __callStatic(string $method, array $parameters)

Handle dynamic static method calls into the method.

Parameters

string $method
array $parameters

Return Value

mixed

string __toString()

Convert the model to its string representation.

Return Value

string

void __wakeup()

When a model is being unserialized, check if it needs to be booted.

Return Value

void

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.1/Illuminate/Database/Eloquent/Model.html