Класс Phalcon\Mvc\Model\Criteria

Реализует Phalcon\Mvc\Model\CriteriaInterface, Phalcon\Di\InjectionAwareInterface

Source on GitHub

Этот класс используется для построения массива параметров, необходимого для Phalcon\Mvc\Model::find() и Phalcon\Mvc\Model:: findFirst (), с помощью объектно-ориентированного интерфейса.

<?php

$robots = Robots::query()
    ->where("type = :type:")
    ->andWhere("year < 2000")
    ->bind(["type" => "mechanical"])
    ->limit(5, 10)
    ->orderBy("name")
    ->execute();

Методы

public setDI (Phalcon\DiInterface $dependencyInjector)

Устанавливает контейнер DependencyInjector

public getDI ()

Возвращает контейнер DependencyInjector

public setModelName (mixed $modelName)

Устанавливает модель, по которой будет выполняться запрос

public getModelName ()

Возвращает внутреннее имя модели, к которой будут применены критерии

public bind (array $bindParams, [mixed $merge])

Задает параметры привязки в критериях этот метод заменяет все ранее заданные параметры привязки

public bindTypes (array $bindTypes)

Задает типы привязки в критериях этот метод заменяет все ранее заданные параметры привязки

public distinct (mixed $distinct)

Устанавливает флаг SELECT DISTINCT / SELECT ALL

public Phalcon\Mvc\Model\Criteria columns (string | array $columns)

Устанавливает запрашиваемые столбцы

<?php

$criteria->columns(
    [
        "id",
        "name",
    ]
);

public join (mixed $model, [mixed $conditions], [mixed $alias], [mixed $type])

Добавляет соединение INNER к запросу

<?php

$criteria->join("Robots");
$criteria->join("Robots", "r.id = RobotsParts.robots_id");
$criteria->join("Robots", "r.id = RobotsParts.robots_id", "r");
$criteria->join("Robots", "r.id = RobotsParts.robots_id", "r", "LEFT");

public innerJoin (mixed $model, [mixed $conditions], [mixed $alias])

Добавляет соединение INNER к запросу

<?php

$criteria->innerJoin("Robots");
$criteria->innerJoin("Robots", "r.id = RobotsParts.robots_id");
$criteria->innerJoin("Robots", "r.id = RobotsParts.robots_id", "r");

public leftJoin (mixed $model, [mixed $conditions], [mixed $alias])

Добавляет соединение LEFT к запросу

<?php

$criteria->leftJoin("Robots", "r.id = RobotsParts.robots_id", "r");

public rightJoin (mixed $model, [mixed $conditions], [mixed $alias])

Добавляет соединение RIGHT к запросу

<?php

$criteria->rightJoin("Robots", "r.id = RobotsParts.robots_id", "r");

public where (mixed $conditions, [mixed $bindParams], [mixed $bindTypes])

Устанавливает параметр условий в критерии

public addWhere (mixed $conditions, [mixed $bindParams], [mixed $bindTypes])

Добавляет условие к текущим условиям, используя оператор AND (устаревший)

public andWhere (mixed $conditions, [mixed $bindParams], [mixed $bindTypes])

Добавляет условие к текущим условиям, используя оператор AND

public orWhere (mixed $conditions, [mixed $bindParams], [mixed $bindTypes])

Добавляет условие к текущим условиям с использованием оператора OR

public betweenWhere (mixed $expr, mixed $minimum, mixed $maximum)

Добавляет условие BETWEEN  к текущим условиям

<?php

$criteria->betweenWhere("price", 100.25, 200.50);

public notBetweenWhere (mixed $expr, mixed $minimum, mixed $maximum)

Добавляет условие NOT BETWEEN к текущим условиям

<?php

$criteria->notBetweenWhere("price", 100.25, 200.50);

public inWhere (mixed $expr, array $values)

Добавляет условие IN к текущим условиям

<?php

$criteria->inWhere("id", [1, 2, 3]);

public notInWhere (mixed $expr, array $values)

Добавляет условие NOT IN к текущим условиям

<?php

$criteria->notInWhere("id", [1, 2, 3]);

public conditions (mixed $conditions)

Добавляет параметр условий к критериям

public order (mixed $orderColumns)

Добавляет параметр order-by к критериям (устаревший)

public orderBy (mixed $orderColumns)

Добавляет условие order-by к критериям

public groupBy (mixed $group)

Добавляет предложение group-by к критериям

public having (mixed $having)

Добавляет условие having к критериям

public limit (mixed $limit, [mixed $offset])

Добавляет параметр limit к критериям.

<?php

$criteria->limit(100);
$criteria->limit(100, 200);
$criteria->limit("100", "200");

public forUpdate ([mixed $forUpdate])

Добавляет параметр "for_update" к критериям

public sharedLock ([mixed $sharedLock])

Добавляет параметр "shared_lock" к критериям

public cache (array $cache)

Устанавливает параметры кеша в критерии Этот метод заменяет все ранее установленные параметры кеша

public getWhere ()

Возвращает параметр условий в критерии

public string | array | null getColumns ()

Возвращает столбцы для запроса

public getConditions ()

Возвращает параметр условий в критерии

public int | array | null getLimit ()

Возвращает  параметр limit в критериях, который будет целым числом, если предел был установлен без смещения, массив с ключами 'number' и 'offset', если смещение было установлено с лимитом, или null, если предел не был установлен.

public getOrderBy ()

Возвращает предложение порядка в критериях

public getGroupBy ()

Возвращает предложение группы по критериям

public getHaving ()

Возвращает предложение о наличии в критериях

public array getParams ()

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

public static fromInput (Phalcon\DiInterface $dependencyInjector, mixed $modelName, array $data, [mixed $operator])

Строит Phalcon\Mvc\Model\Criteria на основе входного массива типа $_POST

public createBuilder ()

Создает построитель запросов из критериев.

<?php

$builder = Robots::query()
    ->where("type = :type:")
    ->bind(["type" => "mechanical"])
    ->createBuilder();

public execute ()

Выполняет поиск, используя параметры, построенные с критериями