W3cubDocs

/CakePHP 3.6

Interface RepositoryInterface

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

Direct Implementers

Method Summary

  • alias() public
    Returns the table alias or sets a new one
  • 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.

  • hasField() public
    Test to see if a Repository has a specific field/column.
  • newEntities() public
    Create a list of entities + associated entities from an array.
  • newEntity() public
    Create a new entity + associated entities from an array.
  • 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.

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

  • updateAll() public
    Update all matching records.

Method Detail

alias()source public

alias( string|null $alias null )

Returns the table alias or sets a new one

Deprecated

3.4.0 Use setAlias()/getAlias() instead.

Parameters

string|null $alias optional null
the new table alias

Returns

string

delete()source public

delete( Cake\Datasource\EntityInterface $entity , array|ArrayAccess $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

boolean
success

deleteAll()source 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

integer
Returns the number of affected rows.

See

\Cake\Datasource\RepositoryInterface::delete()

exists()source public

exists( array|ArrayAccess $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

boolean

find()source public

find( string $type 'all' , array|ArrayAccess $options [] )

Creates a new Query for this repository and applies some defaults based on the type of search that was selected.

Model.beforeFind event

Each find() will trigger a Model.beforeFind event for all attached listeners. Any listener can set a valid result set using $query

Parameters

string $type optional 'all'
the type of query to perform
array|ArrayAccess $options optional []
An array that will be passed to Query::applyOptions()

Returns

Cake\ORM\Query

get()source public

get( mixed $primaryKey , array|ArrayAccess $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

\Cake\Datasource\RepositoryInterface::find()

hasField()source public

hasField( string $field )

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.

newEntities()source 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()source public

newEntity( array|null $data null , 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 null
The data to build an entity with.
array $options optional []
A list of options for the object hydration.

Returns

Cake\Datasource\EntityInterface

patchEntities()source public

patchEntities( Cake\Datasource\EntityInterface[]|Traversable $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()source 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()source public

query( )

Creates a new Query instance for this repository

Returns

Cake\ORM\Query

save()source public

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

updateAll()source public

updateAll( string|array|callable|Cake\Database\Expression\QueryExpression $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

integer
Count Returns the affected rows.

Magic methods summary

getAlias()source public

getAlias( )

Returns

string

© 2005–2018 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.6/class-Cake.Datasource.RepositoryInterface.html