Abstract class **Phalcon\\Mvc\\Collection** =========================================== *implements* :doc:`Phalcon\\Mvc\\EntityInterface `, :doc:`Phalcon\\Mvc\\CollectionInterface `, :doc:`Phalcon\\Di\\InjectionAwareInterface `, Serializable .. role:: raw-html(raw) :format: html :raw-html:`Source on GitHub` This component implements a high level abstraction for NoSQL databases which works with documents Constants --------- *integer* **OP_NONE** *integer* **OP_CREATE** *integer* **OP_UPDATE** *integer* **OP_DELETE** Methods ------- final public **__construct** ([:doc:`Phalcon\\DiInterface ` $dependencyInjector], [:doc:`Phalcon\\Mvc\\Collection\\ManagerInterface ` $modelsManager]) Phalcon\\Mvc\\Collection constructor public **setId** (*mixed* $id) Sets a value for the _id property, creates a MongoId object if needed public *\MongoId* **getId** () Returns the value of the _id property public **setDI** (:doc:`Phalcon\\DiInterface ` $dependencyInjector) Sets the dependency injection container public **getDI** () Returns the dependency injection container protected **setEventsManager** (:doc:`Phalcon\\Mvc\\Collection\\ManagerInterface ` $eventsManager) Sets a custom events manager protected **getEventsManager** () Returns the custom events manager public **getCollectionManager** () Returns the models manager related to the entity instance public **getReservedAttributes** () Returns an array with reserved properties that cannot be part of the insert/update protected **useImplicitObjectIds** (*unknown* $useImplicitObjectIds) Sets if a model must use implicit objects ids protected **setSource** (*unknown* $source) Sets collection name which model should be mapped public **getSource** () Returns collection name mapped in the model public **setConnectionService** (*unknown* $connectionService) Sets the DependencyInjection connection service name public **getConnectionService** () Returns DependencyInjection connection service public *\MongoDb* **getConnection** () Retrieves a database connection public *mixed* **readAttribute** (*string* $attribute) Reads an attribute value by its name .. code-block:: php readAttribute('name'); public **writeAttribute** (*string* $attribute, *mixed* $value) Writes an attribute value by its name .. code-block:: php writeAttribute('name', 'Rosey'); public static **cloneResult** (:doc:`Phalcon\\Mvc\\CollectionInterface ` $collection, *array* $document) Returns a cloned collection protected static *array* **_getResultset** (*array* $params, :doc:`Phalcon\\Mvc\\Collection ` $collection, *\MongoDb* $connection, *boolean* $unique) Returns a collection resultset protected static *int* **_getGroupResultset** (*array* $params, :doc:`Phalcon\\Mvc\\Collection ` $collection, *\MongoDb* $connection) Perform a count over a resultset final protected *boolean* **_preSave** (:doc:`Phalcon\\DiInterface ` $dependencyInjector, *boolean* $disableEvents, *boolean* $exists) Executes internal hooks before save a document final protected **_postSave** (*unknown* $disableEvents, *unknown* $success, *unknown* $exists) Executes internal events after save a document protected **validate** (:doc:`Phalcon\\Mvc\\Model\\ValidatorInterface ` $validator) Executes validators on every validation call .. code-block:: php validate(new ExclusionIn(array( 'field' => 'status', 'domain' => array('A', 'I') ))); if (this->validationHasFailed() == true) { return false; } } } public **validationHasFailed** () Check whether validation process has generated any messages .. code-block:: php validate(new ExclusionIn(array( 'field' => 'status', 'domain' => array('A', 'I') ))); if (this->validationHasFailed() == true) { return false; } } } public **fireEvent** (*unknown* $eventName) Fires an internal event public **fireEventCancel** (*unknown* $eventName) Fires an internal event that cancels the operation protected **_cancelOperation** (*unknown* $disableEvents) Cancel the current operation protected *boolean* **_exists** (*\MongoCollection* $collection) Checks if the document exists in the collection public **getMessages** () Returns all the validation messages .. code-block:: php type = 'mechanical'; $robot->name = 'Astro Boy'; $robot->year = 1952; if ($robot->save() == false) { echo "Umh, We can't store robots right now "; foreach ($robot->getMessages() as message) { echo message; } } else { echo "Great, a new robot was saved successfully!"; } public **appendMessage** (:doc:`Phalcon\\Mvc\\Model\\MessageInterface ` $message) Appends a customized message on the validation process .. code-block:: php name == 'Peter') { message = new Message("Sorry, but a robot cannot be named Peter"); $this->appendMessage(message); } } } public **save** () Creates/Updates a collection based on the values in the attributes public static :doc:`Phalcon\\Mvc\\Collection ` **findById** (*string|\MongoId* $id) Find a document by its id (_id) public static **findFirst** ([*array* $parameters]) Allows to query the first record that match the specified conditions .. code-block:: php name, "\n"; //What's the first mechanical robot in robots table? $robot = Robots::findFirst(array( array("type" => "mechanical") )); echo "The first mechanical robot name is ", $robot->name, "\n"; //Get first virtual robot ordered by name $robot = Robots::findFirst(array( array("type" => "mechanical"), "order" => array("name" => 1) )); echo "The first virtual robot name is ", $robot->name, "\n"; public static **find** ([*array* $parameters]) Allows to query a set of records that match the specified conditions .. code-block:: php "mechanical") )); echo "There are ", count(robots), "\n"; //Get and print virtual robots ordered by name $robots = Robots::findFirst(array( array("type" => "virtual"), "order" => array("name" => 1) )); foreach ($robots as $robot) { echo $robot->name, "\n"; } //Get first 100 virtual robots ordered by name $robots = Robots::find(array( array("type" => "virtual"), "order" => array("name" => 1), "limit" => 100 )); foreach ($robots as $robot) { echo $robot->name, "\n"; } public static **count** ([*array* $parameters]) Perform a count over a collection .. code-block:: php delete(); foreach (Robots::find() as $robot) { $robot->delete(); } protected **addBehavior** (:doc:`Phalcon\\Mvc\\Collection\\BehaviorInterface ` $behavior) Sets up a behavior in a collection public **skipOperation** (*unknown* $skip) Skips the current operation forcing a success state public **toArray** () Returns the instance as an array representation .. code-block:: php toArray()); public **serialize** () Serializes the object ignoring connections or protected properties public **unserialize** (*unknown* $data) Unserializes the object from a serialized string