Абстрактный класс Phalcon\Mvc\Collection

Реализует Phalcon\Mvc\EntityInterface, Phalcon\Mvc\CollectionInterface, Phalcon\Di\InjectionAwareInterface, Serializable

Source on GitHub

Этот компонент реализует абстракцию высокого уровня для баз данных 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)

Ансериализует объект из сериализованной строки