Interface RepositoryInterface

Describes the methods that any class representing a data storage should comply with.

Namespace: Cake\Datasource

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

  • 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, 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

\Cake\Datasource\RepositoryInterface::delete()

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

\Cake\Datasource\RepositoryInterface::find()

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