\Cake\DatasourceRepositoryInterface

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

Summary

Methods
Constants
alias()
hasField()
find()
get()
query()
updateAll()
deleteAll()
exists()
save()
delete()
newEntity()
newEntities()
patchEntity()
patchEntities()
No constants found
No protected methods found
N/A
No private methods found
N/A

Methods

alias()

alias(string|null  $alias = null) : string

Returns the table alias or sets a new one

Parameters

string|null $alias

the new table alias

Returns

string

hasField()

hasField(string  $field) : boolean

Test to see if a Repository has a specific field/column.

Parameters

string $field

The field to check for.

Returns

boolean —

True if the field exists, false if it does not.

find()

find(string  $type = 'all', array|\ArrayAccess  $options = array()) : \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

the type of query to perform

array|\ArrayAccess $options

An array that will be passed to Query::applyOptions()

Returns

\Cake\Datasource\QueryInterface

get()

get(mixed  $primaryKey, array|\ArrayAccess  $options = array()) : \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|\ArrayAccess $options

options accepted by Table::find()

Throws

\Cake\Datasource\Exception\RecordNotFoundException

if the record with such id could not be found

Returns

\Cake\Datasource\EntityInterface

updateAll()

updateAll(string|array|callable|\Cake\Database\Expression\QueryExpression  $fields, mixed  $conditions) : integer

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

integer —

Count Returns the affected rows.

deleteAll()

deleteAll(mixed  $conditions) : integer

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

integer —

Returns the number of affected rows.

exists()

exists(array|\ArrayAccess  $conditions) : boolean

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

boolean

save()

save(\Cake\Datasource\EntityInterface  $entity, array|\ArrayAccess  $options = array()) : \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

The options to use when saving.

Returns

\Cake\Datasource\EntityInterface|false

delete()

delete(\Cake\Datasource\EntityInterface  $entity, array|\ArrayAccess  $options = array()) : boolean

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

The options for the delete.

Returns

boolean —

success

newEntity()

newEntity(array|null  $data = null, array  $options = array()) : \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|null $data

The data to build an entity with.

array $options

A list of options for the object hydration.

Returns

\Cake\Datasource\EntityInterface

newEntities()

newEntities(array  $data, array  $options = array()) : array<mixed,\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

A list of options for the objects hydration.

Returns

array<mixed,\Cake\Datasource\EntityInterface> —

An array of hydrated records.

patchEntity()

patchEntity(\Cake\Datasource\EntityInterface  $entity, array  $data, array  $options = array()) : \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

A list of options for the object hydration.

Returns

\Cake\Datasource\EntityInterface

patchEntities()

patchEntities(array<mixed,\Cake\Datasource\EntityInterface>|\Traversable  $entities, array  $data, array  $options = array()) : array<mixed,\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

array<mixed,\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

A list of options for the objects hydration.

Returns

array<mixed,\Cake\Datasource\EntityInterface>