Phalcon\Mvc\Model\Query\Builder
Класс Phalcon\Mvc\Model\Query\Builder
Реализует Phalcon\Mvc\Model\Query\BuilderInterface, Phalcon\Di\InjectionAwareInterface
Помогает создавать запросы PHQL с использованием интерфейса OO
<?php $params = [ "models" => ["Users"], "columns" => ["id", "name", "status"], "conditions" => [ [ "created > :min: AND created < :max:", [ "min" => "2013-01-01", "max" => "2014-01-01", ], [ "min" => PDO::PARAM_STR, "max" => PDO::PARAM_STR, ], ], ], // or "conditions" => "created > '2013-01-01' AND created < '2014-01-01'", "group" => ["id", "name"], "having" => "name = 'Kamil'", "order" => ["name", "id"], "limit" => 20, "offset" => 20, // or "limit" => [20, 20], ]; $queryBuilder = new \Phalcon\Mvc\Model\Query\Builder($params);
Константы
string OPERATOR_OR
string OPERATOR_AND
Методы
public __construct ([mixed $params], [Phalcon\DiInterface $dependencyInjector])
Phalcon\Mvc\Model\Query\Builder конструктор
public setDI (Phalcon\DiInterface $dependencyInjector)
Устанавливает контейнер DependencyInjector
public getDI ()
Возвращает контейнер DependencyInjector
public distinct (mixed $distinct)
Устанавливает флажок SELECT DISTINCT / SELECT ALL
<?php $builder->distinct("status"); $builder->distinct(null);
public getDistinct ()
Возвращает флаг SELECT DISTINCT / SELECT ALL
public columns (mixed $columns)
Задает запрашиваемые столбцы
<?php $builder->columns("id, name"); $builder->columns( [ "id", "name", ] ); $builder->columns( [ "name", "number" => "COUNT(*)", ] );
public string | array getColumns ()
Возврат столбцов для запроса
public from (mixed $models)
Задает модели, которые делают часть запроса
<?php $builder->from("Robots"); $builder->from( [ "Robots", "RobotsParts", ] ); $builder->from( [ "r" => "Robots", "rp" => "RobotsParts", ] );
public addFrom (mixed $model, [mixed $alias], [mixed $with])
Добавление модели для принятия части запроса
<?php // Загрузка данных из моделей роботы $builder->addFrom("Robots"); // Загрузка данных из модели 'Robots' с использованием 'r' в качестве псевдонима в PHQL $builder->addFrom("Robots", "r"); // Загрузка данных из модели 'Robots' с использованием 'r' в качестве псевдонима в PHQL // и загружаемая модель 'RobotsParts' $builder->addFrom("Robots", "r", "RobotsParts"); // Загрузить данные из модели 'Robots', используя 'r' в качестве псевдонима в PHQL // и предвыборки моделей 'RobotsParts' и 'Parts' $builder->addFrom( "Robots", "r", [ "RobotsParts", "Parts", ] );
public string | array getFrom ()
Возврат моделей, составляющих часть запроса
public Phalcon\Mvc\Model\Query\Builder join (string $model, [string $conditions], [string $alias], [string $type])
Добавляет: type: join (по умолчанию type - INNER) к запросу
<?php // Inner Join модель 'Robots' с автоматическими условиями и псевдонимами $builder->join("Robots"); // Inner Join модель 'Robots', определяющая условия $builder->join("Robots", "Robots.id = RobotsParts.robots_id"); // Inner Join модель 'Robots', определяющая условия и псевдоним $builder->join("Robots", "r.id = RobotsParts.robots_id", "r"); // Left Join модель 'Robots', определяющие условия, псевдоним и тип соединения $builder->join("Robots", "r.id = RobotsParts.robots_id", "r", "LEFT");
public Phalcon\Mvc\Model\Query\Builder innerJoin (string $model, [string $conditions], [string $alias])
Добавляет соединение INNER к запросу
<?php // Inner Join модель 'Robots' с автоматическими условиями и псевдонимом $builder->innerJoin("Robots"); // Inner Join модель 'Robots', определяющие условия $builder->innerJoin("Robots", "Robots.id = RobotsParts.robots_id"); // Inner Join модель 'Robots', определяющие условия и псевдоним $builder->innerJoin("Robots", "r.id = RobotsParts.robots_id", "r");
public Phalcon\Mvc\Model\Query\Builder leftJoin (string $model, [string $conditions], [string $alias])
Добавляет LEFT Join к запросу
<?php $builder->leftJoin("Robots", "r.id = RobotsParts.robots_id", "r");
public Phalcon\Mvc\Model\Query\Builder rightJoin (string $model, [string $conditions], [string $alias])
Добавляет RIGHTJoin к запросу
<?php $builder->rightJoin("Robots", "r.id = RobotsParts.robots_id", "r");
public array getJoins ()
Возврат частей запроса join
public Phalcon\Mvc\Model\Query\Builder where (mixed $conditions, [array $bindParams], [array $bindTypes])
Устанавливает условия запроса WHERE
<?php $builder->where(100); $builder->where("name = 'Peter'"); $builder->where( "name = :name: AND id > :id:", [ "name" => "Peter", "id" => 100, ] );
public Phalcon\Mvc\Model\Query\Builder andWhere (string $conditions, [array $bindParams], [array $bindTypes])
Добавляет условие к текущим условиям WHERE с использованием оператора AND
<?php $builder->andWhere("name = 'Peter'"); $builder->andWhere( "name = :name: AND id > :id:", [ "name" => "Peter", "id" => 100, ] );
public Phalcon\Mvc\Model\Query\Builder orWhere (string $conditions, [array $bindParams], [array $bindTypes])
Добавляет условие к текущим условиям с использованием оператора OR
<?php $builder->orWhere("name = 'Peter'"); $builder->orWhere( "name = :name: AND id > :id:", [ "name" => "Peter", "id" => 100, ] );
public betweenWhere (mixed $expr, mixed $minimum, mixed $maximum, [mixed $operator])
Добавляет условие BETWEEN текущими условиями WHERE
<?php $builder->betweenWhere("price", 100.25, 200.50);
public notBetweenWhere (mixed $expr, mixed $minimum, mixed $maximum, [mixed $operator])
Добавляет условие NOT BETWEEN к текущим условиям WHERE
<?php $builder->notBetweenWhere("price", 100.25, 200.50);
public inWhere (mixed $expr, array $values, [mixed $operator])
Добавляет условие IN к текущим условиям WHERE
<?php $builder->inWhere("id", [1, 2, 3]);
public notInWhere (mixed $expr, array $values, [mixed $operator])
Добавляет условие NOT IN к текущим условиям WHERE
<?php $builder->notInWhere("id", [1, 2, 3]);
public string | array getWhere ()
Вернуть условия для запроса
public Phalcon\Mvc\Model\Query\Builder orderBy (string | array $orderBy)
Задает предложение условия ORDER BY
<?php $builder->orderBy("Robots.name"); $builder->orderBy(["1", "Robots.name"]);
public string | array getOrderBy ()
Возвращает заданное предложение ORDER BY
public Phalcon\Mvc\Model\Query\Builder having (mixed $conditions, [array $bindParams], [array $bindTypes])
Задает условие HAVING
<?php $builder->having("SUM(Robots.price) > 0"); $builder->having( "SUM(Robots.price) > :sum:", [ "sum" => 100, ] );
public Phalcon\Mvc\Model\Query\Builder andHaving (string $conditions, [array $bindParams], [array $bindTypes])
Добавляет условие к текущему условию HAVING с помощью оператора AND
<?php $builder->andHaving("SUM(Robots.price) > 0"); $builder->andHaving( "SUM(Robots.price) > :sum:", [ "sum" => 100, ] );
public Phalcon\Mvc\Model\Query\Builder orHaving (string $conditions, [array $bindParams], [array $bindTypes])
Добавляет условие к текущему условию HAVING с помощью оператора OR
<?php $builder->orHaving("SUM(Robots.price) > 0"); $builder->orHaving( "SUM(Robots.price) > :sum:", [ "sum" => 100, ] );
public betweenHaving (mixed $expr, mixed $minimum, mixed $maximum, [mixed $operator])
Добавляет условие BETWEEN к текущему условию HAVING
<?php $builder->betweenHaving("SUM(Robots.price)", 100.25, 200.50);
public notBetweenHaving (mixed $expr, mixed $minimum, mixed $maximum, [mixed $operator])
Добавляет условие NOT BETWEEN к текущему условию HAVING
<?php $builder->notBetweenHaving("SUM(Robots.price)", 100.25, 200.50);
public inHaving (mixed $expr, array $values, [mixed $operator])
Добавляет условие IN к текущему условию HAVING
<?php $builder->inHaving("SUM(Robots.price)", [100, 200]);
public notInHaving (mixed $expr, array $values, [mixed $operator])
Добавляет условие NOT IN к текущему условию HAVING
<?php $builder->notInHaving("SUM(Robots.price)", [100, 200]);
public string getHaving ()
Вернуть текущую позицию
public forUpdate (mixed $forUpdate)
Устанавливает условие FOR UPDATE
<?php $builder->forUpdate(true);
public limit (mixed $limit, [mixed $offset])
Устанавливает предложение LIMIT, необязательно условие offset
<?php $builder->limit(100); $builder->limit(100, 20); $builder->limit("100", "20");
public string | array getLimit ()
Возвращает текущее предложение LIMIT
public offset (mixed $offset)
Устанавливает условие OFFSET
<?php $builder->offset(30);
public string | array getOffset ()
Возвращает текущую позицию OFFSET
public Phalcon\Mvc\Model\Query\Builder groupBy (string | array $group)
Устанавливает предложение GROUP BY
<?php $builder->groupBy( [ "Robots.name", ] );
public string getGroupBy ()
Возвращает предложение GROUP BY
final public string getPhql ()
Возвращает инструкцию PHQL, построенную на основе параметров компоновщика
public getQuery ()
Возвращает построенный запрос
final public autoescape (mixed $identifier)
Автоматически экранирует идентификаторы, но только если их нужно экранировать.
private _conditionBetween (mixed $clause, mixed $operator, mixed $expr, mixed $minimum, mixed $maximum)
Добавляет условие BETWEEN
private _conditionNotBetween (mixed $clause, mixed $operator, mixed $expr, mixed $minimum, mixed $maximum)
Добавляет условие NOT BETWEEN
private _conditionIn (mixed $clause, mixed $operator, mixed $expr, array $values)
Добавляет условие IN
private _conditionNotIn (mixed $clause, mixed $operator, mixed $expr, array $values)
Добавляет условие NOT IN