Spec-Zone.ru › Phalcon 3

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

implements Phalcon\Mvc\EntityInterface, Phalcon\Mvc\CollectionInterface, Phalcon\Di\InjectionAwareInterface, Serializable

Источник на GitHub

Этот компонент реализует высокоуровневую абстракцию для баз данных NoSQL, которая работает с документами

Константы

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)

Устанавливает имя службы подключения DependencyInjection

public getConnectionService ()

Возвращает службу подключения DependencyInjection

public MongoDb getConnection ()

Возвращает подключение к базе данных

public mixed readAttribute (string $attribute)

Считывает значение атрибута по его имени

echo $robot->readAttribute("name");

public writeAttribute (string $attribute, mixed $value)

Записывает значение атрибута по его имени

$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)

Выполняет валидацию на каждом вызове валидации

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;
        }
    }
}
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 ()

Проверяет, сгенерированы ли сообщения о неудачной валидации

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

Возвращает все сообщения валидации

$robot = new Robots();

$robot->type = "mechanical";
$robot->name = "Astro Boy";
$robot->year = 1952;

if ($robot->save() === false) {
    echo "Umh, We can't store robots right now ";

    $messages = $robot->getMessages();

    foreach ($messages as $message) {
        echo $message;
    }
} else {
    echo "Great, a new robot was saved successfully!";
}

public appendMessage (Phalcon\Mvc\Model\MessageInterface $message)

Добавляет настраиваемое сообщение в процесс валидации

use \Phalcon\Mvc\Model\Message as Message;

class Robots extends \Phalcon\Mvc\Model
{
    public function beforeSave()
    {
        if ($this->name === "Peter") {
            $message = new Message(
                "Sorry, but a robot cannot be named Peter"
            );

            $this->appendMessage(message);
        }
    }
}

protected prepareCU ()

Общие код для операций CU. Подготовка коллекции.

public save ()

Создаёт/обновляет коллекцию на основе значений атрибутов

public create ()

Создаёт коллекцию на основе значений атрибутов

public createIfNotExist (array $criteria)

Создаёт документ на основе значений атрибутов, если он не найден по критериям. Лучший способ избежать дублирования — создать индекс по атрибуту

$robot = new Robot();

$robot->name = "MyRobot";
$robot->type = "Droid";

// Create only if robot with same name and type does not exist
$robot->createIfNotExist(
    [
        "name",
        "type",
    ]
);

public update ()

Создаёт/обновляет коллекцию на основе значений атрибутов

public static findById (mixed $id)

Находит документ по его идентификатору (_id)

// Find user by using \MongoId object
$user = Users::findById(
    new \MongoId("545eb081631d16153a293a66")
);

// Find user by using id as sting
$user = Users::findById("45cbc4a0e4123f6920000002");

// Validate input
if ($user = Users::findById($_POST["id"])) {
    // ...
}

public static findFirst ([array $parameters])

Позволяет получить первую запись, соответствующую заданным условиям

// What's the first robot in the robots table?
$robot = Robots::findFirst();

echo "The robot name is ", $robot->name, "\n";

// What's the first mechanical robot in robots table?
$robot = Robots::findFirst(
    [
        [
            "type" => "mechanical",
        ]
    ]
);

echo "The first mechanical robot name is ", $robot->name, "\n";

// Get first virtual robot ordered by name
$robot = Robots::findFirst(
    [
        [
            "type" => "mechanical",
        ],
        "order" => [
            "name" => 1,
        ],
    ]
);

echo "The first virtual robot name is ", $robot->name, "\n";

// Get first robot by id (_id)
$robot = Robots::findFirst(
    [
        [
            "_id" => new \MongoId("45cbc4a0e4123f6920000002"),
        ]
    ]
);

echo "The robot id is ", $robot->_id, "\n";

public static find ([array $parameters])

Позволяет получить набор записей, соответствующих заданным условиям

// How many robots are there?
$robots = Robots::find();

echo "There are ", count($robots), "\n";

// How many mechanical robots are there?
$robots = Robots::find(
    [
        [
            "type" => "mechanical",
        ]
    ]
);

echo "There are ", count(robots), "\n";

// Get and print virtual robots ordered by name
$robots = Robots::findFirst(
    [
        [
            "type" => "virtual"
        ],
        "order" => [
            "name" => 1,
        ]
    ]
);

foreach ($robots as $robot) {
   echo $robot->name, "\n";
}

// Get first 100 virtual robots ordered by name
$robots = Robots::find(
    [
        [
            "type" => "virtual",
        ],
        "order" => [
            "name" => 1,
        ],
        "limit" => 100,
    ]
);

foreach ($robots as $robot) {
   echo $robot->name, "\n";
}

public static count ([array $parameters])

Выполняет подсчёт элементов в коллекции

echo "There are ", Robots::count(), " robots";

public static aggregate ([array $parameters])

Выполняет агрегацию с использованием фреймворка агрегации Mongo

public static summatory (mixed $field, [mixed $conditions], [mixed $finalize])

Позволяет выполнить суммарную группировку по столбцу в коллекции

public delete ()

Удаляет экземпляр модели. Возвращает true при успехе или false в противном случае.

$robot = Robots::findFirst();

$robot->delete();

$robots = Robots::find();

foreach ($robots as $robot) {
    $robot->delete();
}

public setDirtyState (mixed $dirtyState)

Устанавливает состояние изменения объекта, используя одну из констант DIRTY_STATE_*

public getDirtyState ()

Возвращает одну из констант DIRTY_STATE_*, указывающую, существует ли документ в коллекции или нет

protected addBehavior (Phalcon\Mvc\Collection\BehaviorInterface $behavior)

Настраивает поведение в коллекции

public skipOperation (mixed $skip)

Пропускает текущую операцию, принудительно устанавливая состояние успеха

public toArray ()

Возвращает экземпляр в виде представления массива

print_r(
    $robot->toArray()
);

public serialize ()

Сериализует объект, игнорируя подключения или защищённые свойства

public unserialize (mixed $data)

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

© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/api/Phalcon_Mvc_Collection.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API