Класс Phalcon\Mvc\Model\Query\Builder
реализует Phalcon\Mvc\Model\Query\BuilderInterface, Phalcon\DI\InjectionAwareInterface
Помогает создавать запросы PHQL с помощью объектно-ориентированного интерфейса
$resultset = $this->modelsManager->createBuilder()
->from('Robots')
->join('RobotsParts')
->limit(20)
->orderBy('Robots.name')
->getQuery()
->execute();
Методы
public __construct ([array $params])
Конструктор Phalcon\Mvc\Model\Query\Builder
$params = array(
'models' => array('Users'),
'columns' => array('id', 'name', 'status'),
'conditions' => array(
array(
"created > :min: AND created < :max:",
array("min" => '2013-01-01', 'max' => '2014-01-01'),
array("min" => PDO::PARAM_STR, 'max' => PDO::PARAM_STR),
),
),
// or 'conditions' => "created > '2013-01-01' AND created < '2014-01-01'",
'group' => array('id', 'name'),
'having' => "name = 'Kamil'",
'order' => array('name', 'id'),
'limit' => 20,
'offset' => 20,
// or 'limit' => array(20, 20),
);
$queryBuilder = new Phalcon\Mvc\Model\Query\Builder($params);
public Phalcon\Mvc\Model\Query\BuilderInterface distinct (unknown $distinct)
Устанавливает флаг SELECT DISTINCT / SELECT ALL
public bool getDistinct ()
Возвращает флаг SELECT DISTINCT / SELECT ALL
public Phalcon\Mvc\Model\Query\Builder setDI (Phalcon\DiInterface $dependencyInjector)
Устанавливает контейнер DependencyInjector
public Phalcon\DiInterface getDI ()
Возвращает контейнер DependencyInjector
public Phalcon\Mvc\Model\Query\Builder columns (string|array $columns)
Устанавливает столбцы, которые будут запрошены
$builder->columns(array('id', 'name'));
public string|array getColumns ()
Возвращает столбцы, которые будут запрошены
public Phalcon\Mvc\Model\Query\Builder from (string|array $models)
Устанавливает модели, которые являются частью запроса
$builder->from('Robots');
$builder->from(array('Robots', 'RobotsParts'));
public Phalcon\Mvc\Model\Query\Builder addFrom (string $model, [string $alias])
Добавляет модель в запрос
$builder->addFrom('Robots', 'r');
public string|array getFrom ()
Возвращает модели, которые являются частью запроса
public Phalcon\Mvc\Model\Query\Builder join (string $model, [string $conditions], [string $alias])
Добавляет соединение к запросу
$builder->join('Robots');
$builder->join('Robots', 'r.id = RobotsParts.robots_id');
$builder->join('Robots', 'r.id = RobotsParts.robots_id', 'r');
$builder->join('Robots', 'r.id = RobotsParts.robots_id', 'r', 'LEFT');
public Phalcon\Mvc\Model\Query\Builder innerJoin (string $model, [string $conditions], [string $alias])
Добавляет INNER соединение к запросу
$builder->innerJoin('Robots');
$builder->innerJoin('Robots', 'r.id = RobotsParts.robots_id');
$builder->innerJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
public Phalcon\Mvc\Model\Query\Builder leftJoin (string $model, [string $conditions], [string $alias])
Добавляет LEFT соединение к запросу
$builder->leftJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
public Phalcon\Mvc\Model\Query\Builder rightJoin (string $model, [string $conditions], [string $alias])
Добавляет RIGHT соединение к запросу
$builder->rightJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
public Phalcon\Mvc\Model\Query\Builder where (string $conditions, [array $bindParams], [array $bindTypes])
Устанавливает условия запроса
$builder->where('name = "Peter"');
$builder->where('name = :name: AND id > :id:', array('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:', array('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:', array('name' => 'Peter', 'id' => 100));
public Phalcon\Mvc\Model\Query\Builder betweenWhere (string $expr, mixed $minimum, mixed $maximum)
Добавляет условие BETWEEN к текущим условиям
$builder->betweenWhere('price', 100.25, 200.50);
public Phalcon\Mvc\Model\Query\Builder notBetweenWhere (string $expr, mixed $minimum, mixed $maximum)
Добавляет условие NOT BETWEEN к текущим условиям
$builder->notBetweenWhere('price', 100.25, 200.50);
public Phalcon\Mvc\Model\Query\Builder inWhere (string $expr, array $values)
Добавляет условие IN к текущим условиям
$builder->inWhere('id', [1, 2, 3]);
public Phalcon\Mvc\Model\Query\Builder notInWhere (string $expr, array $values)
Добавляет условие NOT IN к текущим условиям
$builder->notInWhere('id', [1, 2, 3]);
public string|array getWhere ()
Возвращает условия для запроса
public Phalcon\Mvc\Model\Query\Builder orderBy (string $orderBy)
Устанавливает условие ORDER BY
$builder->orderBy('Robots.name');
$builder->orderBy(array('1', 'Robots.name'));
public string|array getOrderBy ()
Возвращает установленное условие ORDER BY
public Phalcon\Mvc\Model\Query\Builder having (string $having)
Устанавливает условие HAVING. Вам нужно экранировать зарезервированные слова PHQL с помощью [ и ] delimiters
$builder->having('SUM(Robots.price) > 0');
public string|array getHaving ()
Возвращает текущее условие having
public Phalcon\Mvc\Model\Query\Builder limit (int $limit, [int $offset])
Устанавливает условие LIMIT, необязательно условие смещения
$builder->limit(100); $builder->limit(100, 20);
public string|array getLimit ()
Возвращает текущее условие LIMIT
public Phalcon\Mvc\Model\Query\Builder offset (int $offset)
Устанавливает условие OFFSET
$builder->offset(30);
public string|array getOffset ()
Возвращает текущее условие OFFSET
public Phalcon\Mvc\Model\Query\Builder groupBy (string $group)
Устанавливает условие GROUP BY
$builder->groupBy(array('Robots.name'));
public string getGroupBy ()
Возвращает условие GROUP BY
public string getPhql ()
Возвращает строку PHQL, построенную на основе параметров билдера
public Phalcon\Mvc\Model\Query getQuery ()
Возвращает построенный запрос
© 2011–2016 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/2.0.0/api/Phalcon_Mvc_Model_Query_Builder.html