Phalcon\Mvc\Collection
Абстрактный класс Phalcon\Mvc\Collection
Реализует Phalcon\Mvc\EntityInterface, Phalcon\Mvc\CollectionInterface, Phalcon\Di\InjectionAwareInterface, Serializable
Этот компонент реализует абстракцию высокого уровня для баз данных NoSQL, которая работает с документами
Constants
integer OP_NONE
integer OP_CREATE
integer OP_UPDATE
integer OP_DELETE
integer DIRTY_STATE_PERSISTENT
integer DIRTY_STATE_TRANSIENT
integer DIRTY_STATE_DETACHED
Методы
final public __construct ([Phalcon\DiInterface $dependencyInjector], [Phalcon\Mvc\Collection\ManagerInterface $modelsManager])
Phalcon\Mvc\Collection конструктор
public setId (mixed $id)
Устанавливает значение для свойства _id, при необходимости создает объект MongoId
public MongoId getId ()
Возвращает значение свойства _id
public setDI (Phalcon\DiInterface $dependencyInjector)
Задает контейнер внедрения зависимостей
public getDI ()
Возвращает контейнер внедрения зависимостей
protected setEventsManager (Phalcon\Mvc\Collection\ManagerInterface $eventsManager)
Устанавливает пользовательский менеджер событий
protected getEventsManager ()
Возвращает менеджер настраиваемых событий
public getCollectionManager ()
Возвращает диспетчер моделей, связанный с экземпляром объекта
public getReservedAttributes ()
Возвращает массив с зарезервированными свойствами, которые не могут быть частью вставки/обновления
protected useImplicitObjectIds (mixed $useImplicitObjectIds)
Задает, должна ли модель использовать неявные идентификаторы объектов
protected setSource (mixed $source)
Задает имя коллекции, какая модель должна быть сопоставлена
public getSource ()
Возвращает имя коллекции, отображаемое в модели
public setConnectionService (mixed $connectionService)
Устанавливает имя службы подключения для впрыскивания зависимостей
public getConnectionService ()
Возврат Зависимость подключения
public MongoDb getConnection ()
Извлекает соединение с базой данных
public mixed readAttribute (string $attribute)
Читает значение атрибута по его имени
<?php echo $robot->readAttribute("name");
public writeAttribute (string $attribute, mixed $value)
Записывает значение атрибута по имени
<?php $robot->writeAttribute("name", "Rosey");
public static cloneResult (Phalcon\Mvc\CollectionInterface $collection, array $document)
Возвращает клонированную коллекцию
protected static array _getResultset (array $params, Phalcon\Mvc\Collection $collection, MongoDb $connection, boolean $unique)
Возвращает набор результатов коллекции
protected static int _getGroupResultset (array $params, Phalcon\Mvc\Collection $collection, MongoDb $connection)
Выполнить подсчет по набору результатов
final protected boolean _preSave (Phalcon\DiInterface $dependencyInjector, boolean $disableEvents, boolean $exists)
Выполняет внутренние перехватчики перед сохранением документа
final protected _postSave (mixed $disableEvents, mixed $success, mixed $exists)
Выполняет внутренние события после сохранения документа
protected validate (mixed $validator)
Выполняет валидаторы при каждом вызове проверки
<?php use Phalcon\Mvc\Model\Validator\ExclusionIn as ExclusionIn; class Subscriptors extends \Phalcon\Mvc\Collection { public function validation() { // Old, deprecated syntax, use new one below $this->validate( new ExclusionIn( [ "field" => "status", "domain" => ["A", "I"], ] ) ); if ($this->validationHasFailed() == true) { return false; } } }
<?php use Phalcon\Validation\Validator\ExclusionIn as ExclusionIn; use Phalcon\Validation; class Subscriptors extends \Phalcon\Mvc\Collection { public function validation() { $validator = new Validation(); $validator->add("status", new ExclusionIn( [ "domain" => ["A", "I"] ] ) ); return $this->validate($validator); } }
public validationHasFailed ()
Проверяет, сгенерировал ли валидатор какие-либо сообщения
<?php use Phalcon\Mvc\Model\Validator\ExclusionIn as ExclusionIn; class Subscriptors extends \Phalcon\Mvc\Collection { public function validation() { $this->validate( new ExclusionIn( [ "field" => "status", "domain" => ["A", "I"], ] ) ); if ($this->validationHasFailed() == true) { return false; } } }
public fireEvent (mixed $eventName)
Запускает внутреннее событие
public fireEventCancel (mixed $eventName)
Вызывает внутреннее событие, отменяющее операцию
protected _cancelOperation (mixed $disableEvents)
Отменить текущую операцию
protected boolean _exists (MongoCollection $collection)
Проверяет, существует ли документ в коллекции
public getMessages ()
Возвращает все сообщения проверки
<?php $robot = new Robots(); $robot->type = "mechanical"; $robot->name = "Astro Boy"; $robot->year = 1952; if ($robot->save() === false) { echo "Мы не можем сейчас хранить роботов. "; $messages = $robot->getMessages(); foreach ($messages as $message) { echo $message; } } else { echo "Отлично, новый робот был успешно спасен!"; }
public appendMessage (Phalcon\Mvc\Model\MessageInterface $message)
Добавляет настраиваемое сообщение в процесс проверки
<?php use \Phalcon\Mvc\Model\Message as Message; class Robots extends \Phalcon\Mvc\Model { public function beforeSave() { if ($this->name === "Peter") { $message = new Message( "Извините, но робота нельзя назвать Питером." ); $this->appendMessage(message); } } }
protected prepareCU ()
Общий код для Cu операций подготовки коллекции
public save ()
Создает/обновляет коллекцию на основе значений в атрибутах
public create ()
Создает коллекцию на основе значений в атрибутах
public createIfNotExist (array $criteria)
Создает документ на основе значений в атрибутах, если не найден по критериям. Предпочтительным способом избежать дублирования является создание индекса по атрибуту
<?php $robot = new Robot(); $robot->name = "MyRobot"; $robot->type = "Droid"; // Создать, только если робот с таким же именем и типом не существует $robot->createIfNotExist( [ "name", "type", ] );
public update ()
Создает/обновляет коллекцию на основе значений в атрибутах
public static findById (mixed $id)
Найти документ по id (_id)
<?php // Найти пользователя с помощью \MongoId объекта $user = Users::findById( new \MongoId("545eb081631d16153a293a66") ); // Найти пользователя с помощью id в качестве sting $user = Users::findById("45cbc4a0e4123f6920000002"); // Validate input if ($user = Users::findById($_POST["id"])) { // ... }
public static findFirst ([array $parameters])
Позволяет запросить первую запись, соответствующую заданным условиям
<?php // Каков первый робот в таблице роботов? $robot = Robots::findFirst(); echo "Имя робота ", $robot->name, "\n"; // Каков первый механический робот в таблице роботов? $robot = Robots::findFirst( [ [ "type" => "mechanical", ] ] ); echo "Первое имя механического робота ", $robot->name, "\n"; // Получить первый виртуальный робот, заказанный по имени $robot = Robots::findFirst( [ [ "type" => "mechanical", ], "order" => [ "name" => 1, ], ] ); echo "Первое имя виртуального робота ", $robot->name, "\n"; // Получить id первого робота (_id) $robot = Robots::findFirst( [ [ "_id" => new \MongoId("45cbc4a0e4123f6920000002"), ] ] ); echo "Идентификатор робота ", $robot->_id, "\n";
public static find ([array $parameters])
Позволяет запрашивать набор записей, соответствующих указанным условиям
<?php // Сколько роботов есть? $robots = Robots::find(); echo "Есть ", count($robots), "\n"; // Сколько механических роботов есть? $robots = Robots::find( [ [ "type" => "mechanical", ] ] ); echo "Есть ", count(robots), "\n"; // Получить и распечатать виртуальные роботы, заказанные по имени $robots = Robots::findFirst( [ [ "type" => "virtual" ], "order" => [ "name" => 1, ] ] ); foreach ($robots as $robot) { echo $robot->name, "\n"; } // Получить первые 100 виртуальных роботов, заказанных по имени $robots = Robots::find( [ [ "type" => "virtual", ], "order" => [ "name" => 1, ], "limit" => 100, ] ); foreach ($robots as $robot) { echo $robot->name, "\n"; }
public static count ([array $parameters])
Выполнить подсчет по коллекции
<?php echo "Есть ", Robots::count(), " роботов";
public static aggregate ([array $parameters])
Выполнение агрегации с использованием механизма агрегации Mongo
public static summatory (mixed $field, [mixed $conditions], [mixed $finalize])
Позволяет выполнить суммирующую группу для столбца в коллекции
public delete ()
Удаляет экземпляр модели. Возврат true в случае успеха или false в противном случае.
<?php $robot = Robots::findFirst(); $robot->delete(); $robots = Robots::find(); foreach ($robots as $robot) { $robot->delete(); }
public setDirtyState (mixed $dirtyState)
Устанавливает грязное состояние объекта с помощью одной из констант DIRTYSTATE*
public getDirtyState ()
Возвращает одну из констант DIRTYSTATE*, которая сообщает, существует ли документ в коллекции или нет
protected addBehavior (Phalcon\Mvc\Collection\BehaviorInterface $behavior)
Устанавливает поведение в коллекции
public skipOperation (mixed $skip)
Пропускает текущую операцию, приводящую к успешному состоянию
public toArray ()
Возвращает экземпляр в виде представления массива
<?php print_r( $robot->toArray() );
public serialize ()
Сериализует объект, игнорирующий соединения или защищенные свойства
public unserialize (mixed $data)
Ансериализует объект из сериализованной строки