Trait EntityTrait
An entity represents a single result row from a repository. It exposes the methods for retrieving and storing properties associated in this row.
Direct Users
Properties summary
-
$_accessible
protectedarray
Map of properties in this entity that can be safely assigned, each property name points to a boolean indicating its status. An empty array means no properties are accessible
- Holds a cached list of getters/setters per class
array
-
$_className
protectedHolds the name of the class for the instance objectstring
-
$_dirty
protectedarray
Holds a list of the properties that were modified or added after this object was originally created.
-
$_errors
protectedList of errors per field as stored in this objectarray
-
$_hidden
protectedarray
List of property names that should not be included in JSON or Array representations of this Entity.
-
$_invalid
protectedList of invalid fields and their data for errors upon validation/patchingarray
-
$_new
protectedboolean
Indicates whether or not this entity is yet to be persisted. Entities default to assuming they are new. You can use Table::persisted() to set the new flag on an entity based on records in the database.
-
$_original
protectedHolds all properties that have been changed and their original values for this entityarray
-
$_properties
protectedHolds all properties and their values for this entityarray
-
$_registryAlias
protectedThe alias of the repository this entity came fromstring
-
$_virtual
protectedarray
List of computed or virtual fields that should be included in JSON or array representations of this Entity. If a field is present in both _hidden and _virtual the field will not be in the array/json versions of the entity.
Method Summary
- __debugInfo() public
Returns an array that can be used to describe the internal state of this object.
- __get() publicMagic getter to access properties that have been set in this entity
- __isset() public
Returns whether this entity contains a property named $property regardless of if it is empty.
- __set() publicMagic setter to add or edit a property in this entity
- __toString() publicReturns a string representation of this object in a human readable format.
- __unset() publicRemoves a property from this entity
-
Fetch accessor method name Accessor methods (available or not) are cached in $_accessors
- _nestedErrors() protectedAuxiliary method for getting errors in nested entities
- _readError() protectedRead the error(s) from one or many objects.
- accessible() public
Stores whether or not a property value can be changed or set in this entity. The special property
*
can also be marked as accessible or protected, meaning that any other property specified before will take its value. For example$entity->accessible('*', true)
means that any property not specified already will be accessible by default. - clean() public
Sets the entire entity as clean, which means that it will appear as no properties being modified or added at all. This is an useful call for an initial object hydration
- dirty() public
Sets the dirty status of a single property. If called with no second argument, it will return whether the property was modified or not after the object creation.
- errors() public
Sets the error messages for a field or a list of fields. When called without the second argument it returns the validation errors for the specified fields. If called with no arguments it returns all the validation error messages stored in this entity and any other nested entity.
- extract() public
Returns an array with the requested properties stored in this entity, indexed by property name
- extractOriginal() public
Returns an array with the requested original properties stored in this entity, indexed by property name.
- extractOriginalChanged() public
Returns an array with only the original properties stored in this entity, indexed by property name.
- get() publicReturns the value of a property by name
- getDirty() publicGets the dirty properties.
- getError() publicReturns validation errors of a field
- getErrors() publicReturns all validation errors.
- getHidden() publicGets the hidden properties.
- getInvalid() publicGet a list of invalid fields and their data for errors upon validation/patching
- getInvalidField() publicGet a single value of an invalid field. Returns null if not set.
- getOriginal() publicReturns the value of an original property by name
- getOriginalValues() publicGets all original values of the entity.
- getSource() publicReturns the alias of the repository from which this entity came from.
- getVirtual() publicGets the virtual properties on this entity.
- has() public
Returns whether this entity contains a property named $property that contains a non-null value.
- hiddenProperties() publicGet/Set the hidden properties on this entity.
- invalid() publicSets a field as invalid and not patchable into the entity.
- isAccessible() publicChecks if a property is accessible
- isDirty() publicChecks if the entity is dirty or if a single property of it is dirty.
- isNew() public
Returns whether or not this entity has already been persisted. This method can return null in the case there is no prior information on the status of this entity.
- jsonSerialize() publicReturns the properties that will be serialized as JSON
- offsetExists() publicImplements isset($entity);
- offsetGet() publicImplements $entity[$offset];
- offsetSet() publicImplements $entity[$offset] = $value;
- offsetUnset() publicImplements unset($result[$offset]);
- set() publicSets a single property inside this entity.
- setAccess() public
Stores whether or not a property value can be changed or set in this entity. The special property
*
can also be marked as accessible or protected, meaning that any other property specified before will take its value. For example$entity->setAccess('*', true)
means that any property not specified already will be accessible by default. - setDirty() publicSets the dirty status of a single property.
- setError() publicSets errors for a single field
- setErrors() publicSets error messages to the entity
- setHidden() publicSets hidden properties.
- setInvalid() publicSet fields as invalid and not patchable into the entity.
- setInvalidField() publicSets a field as invalid and not patchable into the entity.
- setSource() publicSets the source alias
- setVirtual() publicSets the virtual properties on this entity.
- source() publicReturns the alias of the repository from which this entity came from.
- toArray() public
Returns an array with all the properties that have been set to this entity
- unsetProperty() publicRemoves a property or list of properties from this entity
- virtualProperties() publicGet/Set the virtual properties on this entity.
- visibleProperties() publicGet the list of visible properties.
Method Detail
__debugInfo()source public
__debugInfo( )
Returns an array that can be used to describe the internal state of this object.
Returns
array__get()source public
__get( string $property )
Magic getter to access properties that have been set in this entity
Parameters
- string
$property
- Name of the property to access
Returns
mixed__isset()source public
__isset( string $property )
Returns whether this entity contains a property named $property regardless of if it is empty.
Parameters
- string
$property
- The property to check.
Returns
booleanSee
\Cake\ORM\Entity::has()__set()source public
__set( string $property , mixed $value )
Magic setter to add or edit a property in this entity
Parameters
- string
$property
- The name of the property to set
- mixed
$value
- The value to set to the property
__toString()source public
__toString( )
Returns a string representation of this object in a human readable format.
Returns
string__unset()source public
__unset( string $property )
Removes a property from this entity
Parameters
- string
$property
- The property to unset
_accessor()source protected static
_accessor( string $property , string $type )
Fetch accessor method name Accessor methods (available or not) are cached in $_accessors
Parameters
- string
$property
- the field name to derive getter name from
- string
$type
- the accessor type ('get' or 'set')
Returns
stringmethod name or empty string (no method available)
_nestedErrors()source protected
_nestedErrors( string $field )
Auxiliary method for getting errors in nested entities
Parameters
- string
$field
- the field in this entity to check for errors
Returns
arrayerrors in nested entity if any
_readError()source protected
_readError( array|Cake\Datasource\EntityTrait $object , string|null $path null )
Read the error(s) from one or many objects.
Parameters
- array|
Cake\Datasource\EntityTrait
$object
- The object to read errors from.
- string|null
$path
optional null - The field name for errors.
Returns
arrayaccessible()source public
accessible( string|array $property , boolean|null $set null )
Stores whether or not a property value can be changed or set in this entity. The special property *
can also be marked as accessible or protected, meaning that any other property specified before will take its value. For example $entity->accessible('*', true)
means that any property not specified already will be accessible by default.
You can also call this method with an array of properties, in which case they will each take the accessibility value specified in the second argument.
Example:
$entity->accessible('id', true); // Mark id as not protected $entity->accessible('author_id', false); // Mark author_id as protected $entity->accessible(['id', 'user_id'], true); // Mark both properties as accessible $entity->accessible('*', false); // Mark all properties as protected
When called without the second param it will return whether or not the property can be set.
Example:
$entity->accessible('id'); // Returns whether it can be set or not
Deprecated
3.4.0 Use EntityTrait::setAccess() and EntityTrait::isAccessible()Parameters
- string|array
$property
- single or list of properties to change its accessibility
- boolean|null
$set
optional null true marks the property as accessible, false will mark it as protected.
Returns
$this|bool
clean()source public
clean( )
Sets the entire entity as clean, which means that it will appear as no properties being modified or added at all. This is an useful call for an initial object hydration
dirty()source public
dirty( string|null $property null , null|boolean $isDirty null )
Sets the dirty status of a single property. If called with no second argument, it will return whether the property was modified or not after the object creation.
When called with no arguments it will return whether or not there are any dirty property in the entity
Deprecated
3.4.0 Use EntityTrait::setDirty() and EntityTrait::isDirty()Parameters
- string|null
$property
optional null - the field to set or check status for
- null|boolean
$isDirty
optional null true means the property was changed, false means it was not changed and null will make the function return current state for that property
Returns
booleanWhether the property was changed or not
errors()source public
errors( string|array|null $field null , string|array|null $errors null , boolean $overwrite false )
Sets the error messages for a field or a list of fields. When called without the second argument it returns the validation errors for the specified fields. If called with no arguments it returns all the validation error messages stored in this entity and any other nested entity.
Example
// Sets the error messages for a single field $entity->errors('salary', ['must be numeric', 'must be a positive number']); // Returns the error messages for a single field $entity->errors('salary'); // Returns all error messages indexed by field name $entity->errors(); // Sets the error messages for multiple fields at once $entity->errors(['salary' => ['message'], 'name' => ['another message']);
When used as a setter, this method will return this entity instance for method chaining.
Deprecated
3.4.0 Use EntityTrait::setError(), EntityTrait::setErrors(), EntityTrait::getError() and EntityTrait::getErrors()Parameters
- string|array|null
$field
optional null - The field to get errors for, or the array of errors to set.
- string|array|null
$errors
optional null - The errors to be set for $field
- boolean
$overwrite
optional false - Whether or not to overwrite pre-existing errors for $field
Returns
array|Cake\Datasource\EntityTrait
$this
extract()source public
extract( array $properties , boolean $onlyDirty false )
Returns an array with the requested properties stored in this entity, indexed by property name
Parameters
- array
$properties
- list of properties to be returned
- boolean
$onlyDirty
optional false - Return the requested property only if it is dirty
Returns
arrayextractOriginal()source public
extractOriginal( array $properties )
Returns an array with the requested original properties stored in this entity, indexed by property name.
Properties that are unchanged from their original value will be included in the return of this method.
Parameters
- array
$properties
- List of properties to be returned
Returns
arrayextractOriginalChanged()source public
extractOriginalChanged( array $properties )
Returns an array with only the original properties stored in this entity, indexed by property name.
This method will only return properties that have been modified since the entity was built. Unchanged properties will be omitted.
Parameters
- array
$properties
- List of properties to be returned
Returns
arrayget()source public
get( string $property )
Returns the value of a property by name
Parameters
- string
$property
- the name of the property to retrieve
Returns
mixedThrows
InvalidArgumentExceptionif an empty property name is passed
getError()source public
getError( string $field )
Returns validation errors of a field
Parameters
- string
$field
- Field name to get the errors from
Returns
arraygetInvalid()source public
getInvalid( )
Get a list of invalid fields and their data for errors upon validation/patching
Returns
arraygetInvalidField()source public
getInvalidField( string $field )
Get a single value of an invalid field. Returns null if not set.
Parameters
- string
$field
- The name of the field.
Returns
mixedgetOriginal()source public
getOriginal( string $property )
Returns the value of an original property by name
Parameters
- string
$property
- the name of the property for which original value is retrieved.
Returns
mixedThrows
InvalidArgumentExceptionif an empty property name is passed.
getOriginalValues()source public
getOriginalValues( )
Gets all original values of the entity.
Returns
arraygetSource()source public
getSource( )
Returns the alias of the repository from which this entity came from.
Returns
stringhas()source public
has( string|array $property )
Returns whether this entity contains a property named $property that contains a non-null value.
Example:
$entity = new Entity(['id' => 1, 'name' => null]); $entity->has('id'); // true $entity->has('name'); // false $entity->has('last_name'); // false
You can check multiple properties by passing an array:
$entity->has(['name', 'last_name']);
All properties must not be null to get a truthy result.
When checking multiple properties. All properties must not be null in order for true to be returned.
Parameters
- string|array
$property
- The property or properties to check.
Returns
booleanhiddenProperties()source public
hiddenProperties( null|array $properties null )
Get/Set the hidden properties on this entity.
If the properties argument is null, the currently hidden properties will be returned. Otherwise the hidden properties will be set.
Deprecated
3.4.0 Use EntityTrait::setHidden() and EntityTrait::getHidden()Parameters
- null|array
$properties
optional null - Either an array of properties to hide or null to get properties
Returns
array|Cake\Datasource\EntityTrait
$this
invalid()source public
invalid( string|array|null $field null , mixed|null $value null , boolean $overwrite false )
Sets a field as invalid and not patchable into the entity.
This is useful for batch operations when one needs to get the original value for an error message after patching. This value could not be patched into the entity and is simply copied into the _invalid property for debugging purposes or to be able to log it away.
Deprecated
3.5 Use getInvalid()/getInvalidField()/setInvalid() instead.Parameters
- string|array|null
$field
optional null - The field to get invalid value for, or the value to set.
- mixed|null
$value
optional null - The invalid value to be set for $field.
- boolean
$overwrite
optional false - Whether or not to overwrite pre-existing values for $field.
Returns
$this|mixed
isAccessible()source public
isAccessible( string $property )
Checks if a property is accessible
Example:
$entity->isAccessible('id'); // Returns whether it can be set or not
Parameters
- string
$property
- Property name to check
Returns
booleanisDirty()source public
isDirty( string $property null )
Checks if the entity is dirty or if a single property of it is dirty.
Parameters
- string
$property
optional null - the field to check the status for
Returns
booleanWhether the property was changed or not
isNew()source public
isNew( boolean|null $new null )
Returns whether or not this entity has already been persisted. This method can return null in the case there is no prior information on the status of this entity.
If called with a boolean it will set the known status of this instance, true means that the instance is not yet persisted in the database, false that it already is.
Parameters
- boolean|null
$new
optional null - true if it is known this instance was not yet persisted
Returns
booleanWhether or not the entity has been persisted.
jsonSerialize()source public
jsonSerialize( )
Returns the properties that will be serialized as JSON
Returns
arrayoffsetExists()source public
offsetExists( mixed $offset )
Implements isset($entity);
Parameters
- mixed
$offset
- The offset to check.
Returns
booleanSuccess
offsetGet()source public
offsetGet( mixed $offset )
Implements $entity[$offset];
Parameters
- mixed
$offset
- The offset to get.
Returns
mixedoffsetSet()source public
offsetSet( mixed $offset , mixed $value )
Implements $entity[$offset] = $value;
Parameters
- mixed
$offset
- The offset to set.
- mixed
$value
- The value to set.
offsetUnset()source public
offsetUnset( mixed $offset )
Implements unset($result[$offset]);
Parameters
- mixed
$offset
- The offset to remove.
set()source public
set( string|array $property , mixed $value null , array $options [] )
Sets a single property inside this entity.
Example:
$entity->set('name', 'Andrew');
It is also possible to mass-assign multiple properties to this entity with one call by passing a hashed array as properties in the form of property => value pairs
Example:
$entity->set(['name' => 'andrew', 'id' => 1]); echo $entity->name // prints andrew echo $entity->id // prints 1
Some times it is handy to bypass setter functions in this entity when assigning properties. You can achieve this by disabling the setter
option using the $options
parameter:
$entity->set('name', 'Andrew', ['setter' => false]); $entity->set(['name' => 'Andrew', 'id' => 1], ['setter' => false]);
Mass assignment should be treated carefully when accepting user input, by default entities will guard all fields when properties are assigned in bulk. You can disable the guarding for a single set call with the guard
option:
$entity->set(['name' => 'Andrew', 'id' => 1], ['guard' => true]);
You do not need to use the guard option when assigning properties individually:
// No need to use the guard option. $entity->set('name', 'Andrew');
Parameters
- string|array
$property
the name of property to set or a list of properties with their respective values
- mixed
$value
optional null The value to set to the property or an array if the first argument is also an array, in which case will be treated as $options
- array
$options
optional [] options to be used for setting the property. Allowed option keys are
setter
andguard
Returns
$this
Throws
InvalidArgumentExceptionsetAccess()source public
setAccess( string|array $property , boolean $set )
Stores whether or not a property value can be changed or set in this entity. The special property *
can also be marked as accessible or protected, meaning that any other property specified before will take its value. For example $entity->setAccess('*', true)
means that any property not specified already will be accessible by default.
You can also call this method with an array of properties, in which case they will each take the accessibility value specified in the second argument.
Example:
$entity->setAccess('id', true); // Mark id as not protected $entity->setAccess('author_id', false); // Mark author_id as protected $entity->setAccess(['id', 'user_id'], true); // Mark both properties as accessible $entity->setAccess('*', false); // Mark all properties as protected
Parameters
- string|array
$property
- single or list of properties to change its accessibility
- boolean
$set
true marks the property as accessible, false will mark it as protected.
Returns
$this
setDirty()source public
setDirty( string $property , boolean $isDirty )
Sets the dirty status of a single property.
Parameters
- string
$property
- the field to set or check status for
- boolean
$isDirty
true means the property was changed, false means it was not changed
Returns
$this
setError()source public
setError( string $field , string|array $errors , boolean $overwrite false )
Sets errors for a single field
Example
// Sets the error messages for a single field $entity->errors('salary', ['must be numeric', 'must be a positive number']);
Parameters
- string
$field
- The field to get errors for, or the array of errors to set.
- string|array
$errors
- The errors to be set for $field
- boolean
$overwrite
optional false - Whether or not to overwrite pre-existing errors for $field
Returns
$this
setErrors()source public
setErrors( array $fields , boolean $overwrite false )
Sets error messages to the entity
Example
// Sets the error messages for multiple fields at once $entity->errors(['salary' => ['message'], 'name' => ['another message']);
Parameters
- array
$fields
- The array of errors to set.
- boolean
$overwrite
optional false - Whether or not to overwrite pre-existing errors for $fields
Returns
$this
setHidden()source public
setHidden( array $properties , boolean $merge false )
Sets hidden properties.
Parameters
- array
$properties
- An array of properties to hide from array exports.
- boolean
$merge
optional false - Merge the new properties with the existing. By default false.
Returns
$this
setInvalid()source public
setInvalid( array $fields , boolean $overwrite false )
Set fields as invalid and not patchable into the entity.
This is useful for batch operations when one needs to get the original value for an error message after patching. This value could not be patched into the entity and is simply copied into the _invalid property for debugging purposes or to be able to log it away.
Parameters
- array
$fields
- The values to set.
- boolean
$overwrite
optional false - Whether or not to overwrite pre-existing values for $field.
Returns
$this
setInvalidField()source public
setInvalidField( string $field , mixed $value )
Sets a field as invalid and not patchable into the entity.
Parameters
- string
$field
- The value to set.
- mixed
$value
- The invalid value to be set for $field.
Returns
$this
setSource()source public
setSource( string $alias )
Sets the source alias
Parameters
- string
$alias
- the alias of the repository
Returns
$this
setVirtual()source public
setVirtual( array $properties , boolean $merge false )
Sets the virtual properties on this entity.
Parameters
- array
$properties
- An array of properties to treat as virtual.
- boolean
$merge
optional false - Merge the new properties with the existing. By default false.
Returns
$this
source()source public
source( string|null $alias null )
Returns the alias of the repository from which this entity came from.
If called with no arguments, it returns the alias of the repository this entity came from if it is known.
Deprecated
3.4.0 Use EntityTrait::getSource() and EntityTrait::setSource()Parameters
- string|null
$alias
optional null - the alias of the repository
Returns
string|Cake\Datasource\EntityTrait
$this
toArray()source public
toArray( )
Returns an array with all the properties that have been set to this entity
This method will recursively transform entities assigned to properties into arrays as well.
Returns
arrayunsetProperty()source public
unsetProperty( string|array $property )
Removes a property or list of properties from this entity
Examples:
$entity->unsetProperty('name'); $entity->unsetProperty(['name', 'last_name']);
Parameters
- string|array
$property
- The property to unset.
Returns
$this
virtualProperties()source public
virtualProperties( null|array $properties null )
Get/Set the virtual properties on this entity.
If the properties argument is null, the currently virtual properties will be returned. Otherwise the virtual properties will be set.
Deprecated
3.4.0 Use EntityTrait::getVirtual() and EntityTrait::setVirtual()Parameters
- null|array
$properties
optional null - Either an array of properties to treat as virtual or null to get properties
Returns
array|Cake\Datasource\EntityTrait
$this
visibleProperties()source public
visibleProperties( )
Get the list of visible properties.
The list of visible properties is all standard properties plus virtual properties minus hidden properties.
Returns
arrayA list of properties that are 'visible' in all representations.
Properties detail
$_accessiblesource
protected array
Map of properties in this entity that can be safely assigned, each property name points to a boolean indicating its status. An empty array means no properties are accessible
The special property '*' can also be mapped, meaning that any other property not defined in the map will take its value. For example, '\*' => true
means that any property not defined in the map will be accessible by default
['*' => true]
$_classNamesource
protected string
Holds the name of the class for the instance object
Deprecated
3.2 This field is no longer being used$_dirtysource
protected array
Holds a list of the properties that were modified or added after this object was originally created.
[]
$_hiddensource
protected array
List of property names that should not be included in JSON or Array representations of this Entity.
[]
$_invalidsource
protected array
List of invalid fields and their data for errors upon validation/patching
[]
$_newsource
protected boolean
Indicates whether or not this entity is yet to be persisted. Entities default to assuming they are new. You can use Table::persisted() to set the new flag on an entity based on records in the database.
true
$_originalsource
protected array
Holds all properties that have been changed and their original values for this entity
[]
$_virtualsource
protected array
List of computed or virtual fields that should be included in JSON or array representations of this Entity. If a field is present in both _hidden and _virtual the field will not be in the array/json versions of the entity.
[]
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Datasource.EntityTrait.html