Spec-Zone.ru › Phalcon 3

Класс Phalcon\Mvc\Model\Query\Builder

реализует Phalcon\Mvc\Model\Query\BuilderInterface, Phalcon\Di\InjectionAwareInterface

Исходный код на GitHub

Помогает создавать запросы PHQL с использованием объектно-ориентированного интерфейса

$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

$builder->distinct("status");
$builder->distinct(null);

public getDistinct ()

Возвращает флаг SELECT DISTINCT / SELECT ALL

public columns (mixed $columns)

Устанавливает колонки для запроса

$builder->columns("id, name");

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

$builder->columns(
    [
        "name",
        "number" => "COUNT(*)",
    ]
);

public string | array getColumns ()

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

public from (mixed $models)

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

$builder->from("Robots");

$builder->from(
    [
        "Robots",
        "RobotsParts",
    ]
);

$builder->from(
    [
        "r"  => "Robots",
        "rp" => "RobotsParts",
    ]
);

public addFrom (mixed $model, [mixed $alias], [mixed $with])

Добавляет модель, которая участвует в запросе

// Load data from models Robots
$builder->addFrom("Robots");

// Load data from model 'Robots' using 'r' as alias in PHQL
$builder->addFrom("Robots", "r");

// Load data from model 'Robots' using 'r' as alias in PHQL
// and eager load model 'RobotsParts'
$builder->addFrom("Robots", "r", "RobotsParts");

// Load data from model 'Robots' using 'r' as alias in PHQL
// and eager load models 'RobotsParts' and '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])

Добавляет INNER join в запрос

// Inner Join model 'Robots' with automatic conditions and alias
$builder->join("Robots");

// Inner Join model 'Robots' specifying conditions
$builder->join("Robots", "Robots.id = RobotsParts.robots_id");

// Inner Join model 'Robots' specifying conditions and alias
$builder->join("Robots", "r.id = RobotsParts.robots_id", "r");

// Left Join model 'Robots' specifying conditions, alias and type of join
$builder->join("Robots", "r.id = RobotsParts.robots_id", "r", "LEFT");

public Phalcon\Mvc\Model\Query\Builder innerJoin (string $model, [string $conditions], [string $alias])

Добавляет INNER join в запрос

// Inner Join model 'Robots' with automatic conditions and alias
$builder->innerJoin("Robots");

// Inner Join model 'Robots' specifying conditions
$builder->innerJoin("Robots", "Robots.id = RobotsParts.robots_id");

// Inner Join model 'Robots' specifying conditions and alias
$builder->innerJoin("Robots", "r.id = RobotsParts.robots_id", "r");

public Phalcon\Mvc\Model\Query\Builder leftJoin (string $model, [string $conditions], [string $alias])

Добавляет LEFT join в запрос

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

public Phalcon\Mvc\Model\Query\Builder rightJoin (string $model, [string $conditions], [string $alias])

Добавляет RIGHT join в запрос

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

Устанавливает условия запроса

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

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

$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

$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 к текущим условиям

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

public notBetweenWhere (mixed $expr, mixed $minimum, mixed $maximum, [mixed $operator])

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

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

public inWhere (mixed $expr, array $values, [mixed $operator])

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

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

public notInWhere (mixed $expr, array $values, [mixed $operator])

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

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

public string | array getWhere ()

Возвращает условия для запроса

public Phalcon\Mvc\Model\Query\Builder orderBy (string | array $orderBy)

Устанавливает условие ORDER BY

$builder->orderBy("Robots.name");
$builder->orderBy(["1", "Robots.name"]);

public string | array getOrderBy ()

Возвращает установленное условие ORDER BY

public having (mixed $having)

Устанавливает условие HAVING. Вам необходимо экранировать зарезервированные слова PHQL с помощью разделителей [ и ]

$builder->having("SUM(Robots.price) > 0");

public forUpdate (mixed $forUpdate)

Устанавливает условие FOR UPDATE

$builder->forUpdate(true);

public string | array getHaving ()

Возвращает текущее условие HAVING

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

Устанавливает условие LIMIT, необязательно условие смещения

$builder->limit(100);
$builder->limit(100, 20);
$builder->limit("100", "20");

public string | array getLimit ()

Возвращает текущее условие LIMIT

public offset (mixed $offset)

Устанавливает условие OFFSET

$builder->offset(30);

public string | array getOffset ()

Возвращает текущее условие OFFSET

public Phalcon\Mvc\Model\Query\Builder groupBy (string | array $group)

Устанавливает условие GROUP BY

$builder->groupBy(
    [
        "Robots.name",
    ]
);

public string getGroupBy ()

Возвращает условие GROUP BY

final public string getPhql ()

Возвращает запрос PHQL, построенный на основе параметров билдера

public getQuery ()

Возвращает построенный запрос

final public autoescape (mixed $identifier)

Автоматически экранирует идентификаторы, но только если они требуют экранирования.

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

Spec-Zone.ru

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