Collections
Introduction
Collections are fundamental components in NexaORM, representing a group of entities retrieved from the database. They provide a convenient way to work with multiple entities at once and offer various methods for manipulating and iterating through the data.
The Collection
Class
NexaORM provides a built-in Collection
class that implements the Countable
and ArrayAccess
interfaces. This class offers a set of methods for working with collections of entities:
__construct(array $items)
: Initializes the collection with an array of entities.count()
: Returns the number of entities in the collection.get(string $key)
: Retrieves the entity with the specified key (usually the entity's primary key).all(?callable $callback = null)
: Returns an array containing all entities in the collection. Optionally applies a callback function to each entity.__get($name)
: Magic method that allows accessing entities by property name (equivalent toget($name)
).random()
: Selects and returns a random entity from the collection.offsetExists(mixed $offset)
: Checks if a specific offset exists in the collection (similar to array access).offsetGet(mixed $offset)
: Retrieves the entity at the specified offset.offsetSet(mixed $offset, mixed $value)
: Sets the entity at the specified offset.offsetUnset(mixed $offset)
: Removes the entity at the specified offset.first()
: Returns the first entity in the collection.last()
: Returns the last entity in the collection.filter(callable $callback)
: Creates a new collection containing entities that pass the provided callback function.map(callable $callback)
: Applies the callback function to each entity in the collection and returns a new collection with the modified entities.has(string $key)
: Checks if the collection contains an entity with the specified key.values()
: Returns an array containing the values (entities) from the collection.keys()
: Returns an array containing the keys (usually primary keys) from the collection.isEmpty()
: Checks if the collection is empty.
Benefits of Collections
- Efficient Data Handling: Collections provide a streamlined way to manage and manipulate multiple entities retrieved from database queries.
- Simplified Iterations: Collection methods like
all()
,filter()
, andmap()
allow you to easily iterate through entities and perform operations on them. - Improved Code Readability: Using collections keeps your code clean and focused on data processing rather than low-level array manipulations.
Example Usage
By understanding and effectively utilizing NexaORM collections, you can enhance the efficiency and clarity of your database interactions within your NexaORM projects.