Interface RepositoryInterface
Describes the methods that any class representing a data storage should comply with.
Method Summary
-
delete() public
Delete a single entity.
-
deleteAll() public
Deletes all records matching the provided conditions.
-
exists() public
Returns true if there is any record in this repository matching the specified conditions.
-
find() public
Creates a new Query for this repository and applies some defaults based on the type of search that was selected.
-
get() public
Returns a single record after finding it by its primary key, if no record is found this method throws an exception.
-
getAlias() public
Returns the repository alias.
-
getRegistryAlias() public
Returns the table registry key used to create this table instance.
-
hasField() public
Test to see if a Repository has a specific field/column.
-
newEmptyEntity() public
This creates a new entity object.
-
newEntities() public
Create a list of entities + associated entities from an array.
-
newEntity() public
Create a new entity + associated entities from an array.
-
patchEntities() public
Merges each of the elements passed in
$datainto the entities found in$entitiesrespecting the accessible fields configured on the entities. Merging is done by matching the primary key in each of the elements in$dataand$entities. -
patchEntity() public
Merges the passed
$datainto$entityrespecting the accessible fields configured on the entity. Returns the same entity after being altered. -
query() public
Creates a new Query instance for this repository
-
save() public
Persists an entity based on the fields that are marked as dirty and returns the same entity after a successful save or false in case of any error.
-
setAlias() public
Sets the repository alias.
-
setRegistryAlias() public
Sets the table registry key used to create this table instance.
-
updateAll() public
Update all matching records.
Method Detail
delete() ¶ public
delete(Cake\Datasource\EntityInterface $entity, array|ArrayAccess $options = []): bool
Delete a single entity.
Deletes an entity and possibly related associations from the database based on the 'dependent' option used when defining the association.
Parameters
-
Cake\Datasource\EntityInterface$entity The entity to remove.
-
array|ArrayAccess$options optional The options for the delete.
Returns
booldeleteAll() ¶ public
deleteAll(mixed $conditions): int
Deletes all records matching the provided conditions.
This method will not trigger beforeDelete/afterDelete events. If you need those first load a collection of records and delete them.
This method will not execute on associations' cascade attribute. You should
use database foreign keys + ON CASCADE rules if you need cascading deletes combined
with this method.
Parameters
-
mixed$conditions Conditions to be used, accepts anything Query::where() can take.
Returns
intSee Also
exists() ¶ public
exists(array $conditions): bool
Returns true if there is any record in this repository matching the specified conditions.
Parameters
-
array$conditions list of conditions to pass to the query
Returns
boolfind() ¶ public
find(string $type = 'all', array $options = []): Cake\Datasource\QueryInterface
Creates a new Query for this repository and applies some defaults based on the type of search that was selected.
Parameters
-
string$type optional the type of query to perform
-
array$options optional An array that will be passed to Query::applyOptions()
Returns
Cake\Datasource\QueryInterfaceget() ¶ public
get(mixed $primaryKey, array $options = []): Cake\Datasource\EntityInterface
Returns a single record after finding it by its primary key, if no record is found this method throws an exception.
Example:
$id = 10;
$article = $articles->get($id);
$article = $articles->get($id, ['contain' => ['Comments]]);
Parameters
-
mixed$primaryKey primary key value to find
-
array$options optional options accepted by
Table::find()
Returns
Cake\Datasource\EntityInterfaceThrows
Cake\Datasource\Exception\RecordNotFoundExceptionif the record with such id could not be found
See Also
getRegistryAlias() ¶ public
getRegistryAlias(): string
Returns the table registry key used to create this table instance.
Returns
stringhasField() ¶ public
hasField(string $field): bool
Test to see if a Repository has a specific field/column.
Parameters
-
string$field The field to check for.
Returns
boolnewEmptyEntity() ¶ public
newEmptyEntity(): Cake\Datasource\EntityInterface
This creates a new entity object.
Careful: This does not trigger any field validation. This entity can be persisted without validation error as empty record. Always patch in required fields before saving.
Returns
Cake\Datasource\EntityInterfacenewEntities() ¶ public
newEntities(array $data, array $options = []): Cake\Datasource\EntityInterface[]
Create a list of entities + associated entities from an array.
This is most useful when hydrating request data back into entities. For example, in your controller code:
$articles = $this->Articles->newEntities($this->request->getData());
The hydrated entities can then be iterated and saved.
Parameters
-
array$data The data to build an entity with.
-
array$options optional A list of options for the objects hydration.
Returns
Cake\Datasource\EntityInterface[]newEntity() ¶ public
newEntity(array $data, array $options = []): Cake\Datasource\EntityInterface
Create a new entity + associated entities from an array.
This is most useful when hydrating request data back into entities. For example, in your controller code:
$article = $this->Articles->newEntity($this->request->getData());
The hydrated entity will correctly do an insert/update based on the primary key data existing in the database when the entity is saved. Until the entity is saved, it will be a detached record.
Parameters
-
array$data The data to build an entity with.
-
array$options optional A list of options for the object hydration.
Returns
Cake\Datasource\EntityInterfacepatchEntities() ¶ public
patchEntities(Cake\Datasource\EntityInterface[]|Traversable $entities, array $data, array $options = []): Cake\Datasource\EntityInterface[]
Merges each of the elements passed in $data into the entities
found in $entities respecting the accessible fields configured on the entities.
Merging is done by matching the primary key in each of the elements in $data
and $entities.
This is most useful when editing a list of existing entities using request data:
$article = $this->Articles->patchEntities($articles, $this->request->getData());
Parameters
-
Cake\Datasource\EntityInterface[]|Traversable$entities the entities that will get the data merged in
-
array$data list of arrays to be merged into the entities
-
array$options optional A list of options for the objects hydration.
Returns
Cake\Datasource\EntityInterface[]patchEntity() ¶ public
patchEntity(Cake\Datasource\EntityInterface $entity, array $data, array $options = []): Cake\Datasource\EntityInterface
Merges the passed $data into $entity respecting the accessible
fields configured on the entity. Returns the same entity after being
altered.
This is most useful when editing an existing entity using request data:
$article = $this->Articles->patchEntity($article, $this->request->getData());
Parameters
-
Cake\Datasource\EntityInterface$entity the entity that will get the data merged in
-
array$data key value list of fields to be merged into the entity
-
array$options optional A list of options for the object hydration.
Returns
Cake\Datasource\EntityInterfacequery() ¶ public
query(): Cake\Datasource\QueryInterface
Creates a new Query instance for this repository
Returns
Cake\Datasource\QueryInterfacesave() ¶ public
save(Cake\Datasource\EntityInterface $entity, array|ArrayAccess $options = []): Cake\Datasource\EntityInterface|false
Persists an entity based on the fields that are marked as dirty and returns the same entity after a successful save or false in case of any error.
Parameters
-
Cake\Datasource\EntityInterface$entity the entity to be saved
-
array|ArrayAccess$options optional The options to use when saving.
Returns
Cake\Datasource\EntityInterface|falsesetAlias() ¶ public
setAlias(string $alias): $this
Sets the repository alias.
Parameters
-
string$alias Table alias
Returns
$thissetRegistryAlias() ¶ public
setRegistryAlias(string $registryAlias): $this
Sets the table registry key used to create this table instance.
Parameters
-
string$registryAlias The key used to access this object.
Returns
$thisupdateAll() ¶ public
updateAll(string|array|Closure|Cake\Database\Expression\QueryExpression $fields, mixed $conditions): int
Update all matching records.
Sets the $fields to the provided values based on $conditions. This method will not trigger beforeSave/afterSave events. If you need those first load a collection of records and update them.
Parameters
-
string|array|Closure|Cake\Database\Expression\QueryExpression$fields A hash of field => new value.
-
mixed$conditions Conditions to be used, accepts anything Query::where() can take.
Returns
int