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.
- 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.
Method Detail
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
$conditions list of conditions to pass to the query
Returns
bool
find() public
find(string $type, array $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
$options optional An array that will be passed to Query::applyOptions()
Returns
\Cake\Datasource\QueryInterface
get() public
get(mixed $primaryKey, array $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
$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()
Returns the repository alias.
Returns
string
getRegistryAlias() public
getRegistryAlias()
Returns the table registry key used to create this table instance.
Returns
string
hasField() public
hasField(string $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.
newEmptyEntity() public
newEmptyEntity()
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\EntityInterface
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(array $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
$data 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(iterable $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)
Sets the repository alias.
Parameters
-
string
$alias Table alias
Returns
$this
setRegistryAlias() public
setRegistryAlias(string $registryAlias)
Sets the table registry key used to create this table instance.
Parameters
-
string
$registryAlias The key used to access this object.
Returns
$this
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|\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
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/4.0/interface-Cake.Datasource.RepositoryInterface.html