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)
Ансериализует объект из сериализованной строки