Абстрактный класс Phalcon\Mvc\Collection
implements Phalcon\Mvc\EntityInterface, Phalcon\Mvc\CollectionInterface, Phalcon\Di\InjectionAwareInterface, Serializable
Этот компонент реализует высокоуровневую абстракцию для баз данных 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