W3cubDocs

/Laravel 8

HasAttributes

trait HasAttributes (View source)

Properties

protected array $attributes The model's attributes.
protected array $original The model attribute's original state.
protected array $changes The changed model attributes.
protected array $casts The attributes that should be cast.
protected array $classCastCache The attributes that have been cast using custom classes.
static protected string[] $primitiveCastTypes The built-in, primitive cast types supported by Eloquent.
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 $appends The accessors to append to the model's array form.
static bool $snakeAttributes Indicates whether attributes are snake cased on arrays.
static protected array $mutatorCache The cache of the mutated attributes for each class.
static Encrypter $encrypter The encrypter instance that is used to encrypt attributes.

Methods

array attributesToArray()

Convert the model's attributes to an array.

array addDateAttributesToArray(array $attributes)

Add the date attributes to the attributes array.

array addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)

Add the mutated attributes to the attributes array.

array addCastAttributesToArray(array $attributes, array $mutatedAttributes)

Add the casted attributes to the attributes 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 getAttributeFromArray(string $key)

Get an attribute from the $attributes array.

mixed getRelationValue(string $key)

Get a relationship.

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.

void mergeCasts(array $casts)

Merge new casts with existing casts on the model.

mixed castAttribute(string $key, mixed $value)

Cast an attribute to a native PHP type.

mixed getClassCastableAttributeValue(string $key, mixed $value)

Cast the given attribute using a custom cast class.

string getCastType(string $key)

Get the type of cast for a model attribute.

mixed deviateClassCastableAttribute(string $method, string $key, mixed $value)

Increment or decrement the given attribute using the custom cast class.

mixed serializeClassCastableAttribute(string $key, mixed $value)

Serialize the given attribute using the custom cast class.

bool isCustomDateTimeCast(string $cast)

Determine if the cast type is a custom date time cast.

bool isDecimalCast(string $cast)

Determine if the cast type is a decimal 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.

mixed setMutatedAttributeValue(string $key, mixed $value)

Set the value of an attribute using its mutator.

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.

void setClassCastableAttribute(string $key, mixed $value)

Set the value of a class castable attribute.

$this getArrayAttributeWithValue(string $path, string $key, mixed $value)

Get an array attribute with the given key and value set.

array getArrayAttributeByKey(string $key)

Get an array attribute or return an empty array if it is not set.

string castAttributeAsJson(string $key, mixed $value)

Cast the given attribute to JSON.

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.

mixed fromEncryptedString(string $value)

Decrypt the given encrypted string.

string castAttributeAsEncryptedString(string $key, mixed $value)

Cast the given attribute to an encrypted string.

static void encryptUsing(Encrypter $encrypter)

Set the encrypter instance that will be used to encrypt attributes.

mixed fromFloat(mixed $value)

Decode the given float.

string asDecimal(float $value, int $decimals)

Return a decimal as string.

Carbon asDate(mixed $value)

Return a timestamp as DateTime object with time set to 00:00:00.

Carbon asDateTime(mixed $value)

Return a timestamp as DateTime object.

bool isStandardDateFormat(string $value)

Determine if the given value is a standard date format.

string|null fromDateTime(mixed $value)

Convert a DateTime to a storable string.

int asTimestamp(mixed $value)

Return a timestamp as unix timestamp.

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.

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.

bool isEncryptedCastable(string $key)

Determine whether a value is an encrypted castable for inbound manipulation.

bool isClassCastable(string $key)

Determine if the given key is cast using a custom class.

bool isClassDeviable(string $key)

Determine if the key is deviable using a custom class.

bool isClassSerializable(string $key)

Determine if the key is serializable using a custom class.

mixed resolveCasterClass(string $key)

Resolve the custom caster class for a given key.

string parseCasterClass(string $class)

Parse the given caster class, removing any arguments.

void mergeAttributesFromClassCasts()

Merge the cast class attributes back into the model.

array normalizeCastClassResponse(string $key, mixed $value)

Normalize the response from a custom class caster.

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.

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

Get the model's original attribute values.

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

Get the model's raw 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 syncOriginalAttributes(array|string $attributes)

Sync multiple original attribute with their current values.

$this syncChanges()

Sync the changed attributes.

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

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

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

Determine if the model and all the given attribute(s) have remained the same.

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

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

bool hasChanges(array $changes, array|string|null $attributes = null)

Determine if any of 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.

bool originalIsEquivalent(string $key)

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

mixed transformModelValue(string $key, mixed $value)

Transform a raw model value using mutators, casts, etc.

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

bool hasAppended(string $attribute)

Return whether the accessor attribute has been appended.

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 array getMutatorMethods(mixed $class)

Get all of the attribute mutator methods.

Details

array attributesToArray()

Convert the model's attributes to an array.

Return Value

array

protected array addDateAttributesToArray(array $attributes)

Add the date attributes to the attributes array.

Parameters

array $attributes

Return Value

array

protected array addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)

Add the mutated attributes to the attributes array.

Parameters

array $attributes
array $mutatedAttributes

Return Value

array

protected array addCastAttributesToArray(array $attributes, array $mutatedAttributes)

Add the casted attributes to the attributes array.

Parameters

array $attributes
array $mutatedAttributes

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

protected mixed getAttributeFromArray(string $key)

Get an attribute from the $attributes array.

Parameters

string $key

Return Value

mixed

mixed getRelationValue(string $key)

Get a relationship.

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

void mergeCasts(array $casts)

Merge new casts with existing casts on the model.

Parameters

array $casts

Return Value

void

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

Cast an attribute to a native PHP type.

Parameters

string $key
mixed $value

Return Value

mixed

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

Cast the given attribute using a custom cast class.

Parameters

string $key
mixed $value

Return Value

mixed

protected string getCastType(string $key)

Get the type of cast for a model attribute.

Parameters

string $key

Return Value

string

protected mixed deviateClassCastableAttribute(string $method, string $key, mixed $value)

Increment or decrement the given attribute using the custom cast class.

Parameters

string $method
string $key
mixed $value

Return Value

mixed

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

Serialize the given attribute using the custom cast class.

Parameters

string $key
mixed $value

Return Value

mixed

protected bool isCustomDateTimeCast(string $cast)

Determine if the cast type is a custom date time cast.

Parameters

string $cast

Return Value

bool

protected bool isDecimalCast(string $cast)

Determine if the cast type is a decimal cast.

Parameters

string $cast

Return Value

bool

mixed setAttribute(string $key, mixed $value)

Set a given attribute on the model.

Parameters

string $key
mixed $value

Return Value

mixed

bool hasSetMutator(string $key)

Determine if a set mutator exists for an attribute.

Parameters

string $key

Return Value

bool

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

Set the value of an attribute using its mutator.

Parameters

string $key
mixed $value

Return Value

mixed

protected bool isDateAttribute(string $key)

Determine if the given attribute is a date or date castable.

Parameters

string $key

Return Value

bool

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

Set a given JSON attribute on the model.

Parameters

string $key
mixed $value

Return Value

$this

protected void setClassCastableAttribute(string $key, mixed $value)

Set the value of a class castable attribute.

Parameters

string $key
mixed $value

Return Value

void

protected $this getArrayAttributeWithValue(string $path, string $key, mixed $value)

Get an array attribute with the given key and value set.

Parameters

string $path
string $key
mixed $value

Return Value

$this

protected array getArrayAttributeByKey(string $key)

Get an array attribute or return an empty array if it is not set.

Parameters

string $key

Return Value

array

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

Cast the given attribute to JSON.

Parameters

string $key
mixed $value

Return Value

string

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

mixed fromEncryptedString(string $value)

Decrypt the given encrypted string.

Parameters

string $value

Return Value

mixed

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

Cast the given attribute to an encrypted string.

Parameters

string $key
mixed $value

Return Value

string

static void encryptUsing(Encrypter $encrypter)

Set the encrypter instance that will be used to encrypt attributes.

Parameters

Encrypter $encrypter

Return Value

void

mixed fromFloat(mixed $value)

Decode the given float.

Parameters

mixed $value

Return Value

mixed

protected string asDecimal(float $value, int $decimals)

Return a decimal as string.

Parameters

float $value
int $decimals

Return Value

string

protected Carbon asDate(mixed $value)

Return a timestamp as DateTime object with time set to 00:00:00.

Parameters

mixed $value

Return Value

Carbon

protected Carbon asDateTime(mixed $value)

Return a timestamp as DateTime object.

Parameters

mixed $value

Return Value

Carbon

protected bool isStandardDateFormat(string $value)

Determine if the given value is a standard date format.

Parameters

string $value

Return Value

bool

string|null fromDateTime(mixed $value)

Convert a DateTime to a storable string.

Parameters

mixed $value

Return Value

string|null

protected int asTimestamp(mixed $value)

Return a timestamp as unix timestamp.

Parameters

mixed $value

Return Value

int

protected string serializeDate(DateTimeInterface $date)

Prepare a date for array / JSON serialization.

Parameters

DateTimeInterface $date

Return Value

string

array getDates()

Get the attributes that should be converted to dates.

Return Value

array

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

bool hasCast(string $key, array|string|null $types = null)

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

Parameters

string $key
array|string|null $types

Return Value

bool

array getCasts()

Get the casts array.

Return Value

array

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 bool isEncryptedCastable(string $key)

Determine whether a value is an encrypted castable for inbound manipulation.

Parameters

string $key

Return Value

bool

protected bool isClassCastable(string $key)

Determine if the given key is cast using a custom class.

Parameters

string $key

Return Value

bool

protected bool isClassDeviable(string $key)

Determine if the key is deviable using a custom class.

Parameters

string $key

Return Value

bool

Exceptions

InvalidCastException

protected bool isClassSerializable(string $key)

Determine if the key is serializable using a custom class.

Parameters

string $key

Return Value

bool

Exceptions

InvalidCastException

protected mixed resolveCasterClass(string $key)

Resolve the custom caster class for a given key.

Parameters

string $key

Return Value

mixed

protected string parseCasterClass(string $class)

Parse the given caster class, removing any arguments.

Parameters

string $class

Return Value

string

protected void mergeAttributesFromClassCasts()

Merge the cast class attributes back into the model.

Return Value

void

protected array normalizeCastClassResponse(string $key, mixed $value)

Normalize the response from a custom class caster.

Parameters

string $key
mixed $value

Return Value

array

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

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

Get the model's original attribute values.

Parameters

string|null $key
mixed $default

Return Value

mixed|array

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

Get the model's original attribute values.

Parameters

string|null $key
mixed $default

Return Value

mixed|array

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

Get the model's raw original attribute values.

Parameters

string|null $key
mixed $default

Return Value

mixed|array

array only(array|mixed $attributes)

Get a subset of the model's attributes.

Parameters

array|mixed $attributes

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

$this syncOriginalAttributes(array|string $attributes)

Sync multiple original attribute with their current values.

Parameters

array|string $attributes

Return Value

$this

$this syncChanges()

Sync the changed attributes.

Return Value

$this

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

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

Parameters

array|string|null $attributes

Return Value

bool

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

Determine if the model and all the given attribute(s) have remained the same.

Parameters

array|string|null $attributes

Return Value

bool

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

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

Parameters

array|string|null $attributes

Return Value

bool

protected bool hasChanges(array $changes, array|string|null $attributes = null)

Determine if any of the given attributes were changed.

Parameters

array $changes
array|string|null $attributes

Return Value

bool

array getDirty()

Get the attributes that have been changed since last sync.

Return Value

array

array getChanges()

Get the attributes that were changed.

Return Value

array

bool originalIsEquivalent(string $key)

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

Parameters

string $key

Return Value

bool

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

Transform a raw model value using mutators, casts, etc.

Parameters

string $key
mixed $value

Return Value

mixed

$this append(array|string $attributes)

Append attributes to query when building a query.

Parameters

array|string $attributes

Return Value

$this

$this setAppends(array $appends)

Set the accessors to append to model arrays.

Parameters

array $appends

Return Value

$this

bool hasAppended(string $attribute)

Return whether the accessor attribute has been appended.

Parameters

string $attribute

Return Value

bool

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

static protected array getMutatorMethods(mixed $class)

Get all of the attribute mutator methods.

Parameters

mixed $class

Return Value

array

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