Interface RepositoryInterface
Describes the methods that any class representing a data storage should comply with.
Method Summary
- 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
- getRegistryAlias() public
- patchEntities() public
Merges each of the elements passed in
$data
into the entities found in$entities
respecting the accessible fields configured on the entities. - patchEntity() public
Merges the passed
$data
into$entity
respecting the accessible fields configured on the entity. Returns the same entity after being altered. - 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
- setRegistryAlias() public
Method Detail
alias() public
alias(mixed $alias)
Returns the table alias or sets a new one
Parameters
-
string|null
$alias optional the new table alias
Returns
string
delete() public
delete(\Cake\Datasource\EntityInterface $entity, mixed $options)
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
bool
success
deleteAll() public
deleteAll(mixed $conditions)
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
int
Returns the number of affected rows.
See Also
exists() public
exists(mixed $conditions)
Returns true if there is any record in this repository matching the specified conditions.
Parameters
-
array|\ArrayAccess
$conditions list of conditions to pass to the query
Returns
bool
find() public
find(mixed $type, mixed $options)
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|\ArrayAccess
$options optional An array that will be passed to Query::applyOptions()
Returns
\Cake\Datasource\QueryInterface
get() public
get(mixed $primaryKey, mixed $options)
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|\ArrayAccess
$options optional options accepted by
Table::find()
Returns
\Cake\Datasource\EntityInterface
Throws
Cake\Datasource\Exception\RecordNotFoundException
if the record with such id could not be found
See Also
getAlias() public
getAlias()
getRegistryAlias() public
getRegistryAlias()
hasField() public
hasField(mixed $field)
Test to see if a Repository has a specific field/column.
Parameters
-
string
$field The field to check for.
Returns
bool
True if the field exists, false if it does not.
newEntities() public
newEntities(array $data, array $options)
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[]
An array of hydrated records.
newEntity() public
newEntity(mixed $data, array $options)
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|null
$data optional The data to build an entity with.
-
array
$options optional A list of options for the object hydration.
Returns
\Cake\Datasource\EntityInterface
patchEntities() public
patchEntities(mixed $entities, array $data, array $options)
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)
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\EntityInterface
query() public
query()
Creates a new Query instance for this repository
Returns
\Cake\Datasource\QueryInterface
save() public
save(\Cake\Datasource\EntityInterface $entity, mixed $options)
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|false
setAlias() public
setAlias(string $alias)
Parameters
-
string
$alias
setRegistryAlias() public
setRegistryAlias(string $alias)
Parameters
-
string
$alias
updateAll() public
updateAll(mixed $fields, mixed $conditions)
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|callable|\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
Count Returns the affected rows.
© 2005–present 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.9/interface-Cake.Datasource.RepositoryInterface.html