Class Phalcon\Mvc\Model\Query\Builder
implements Phalcon\Mvc\Model\Query\BuilderInterface, Phalcon\Di\InjectionAwareInterface
Helps to create PHQL queries using an OO interface
<?php
$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);
Methods
public __construct ([unknown $params], [unknown $dependencyInjector])
Phalcon\Mvc\Model\Query\Builder constructor
public Phalcon\Mvc\Model\Query\Builder setDI (unknown $dependencyInjector)
Sets the DependencyInjector container
public Phalcon\DiInterface getDI ()
Returns the DependencyInjector container
public Phalcon\Mvc\Model\Query\BuilderInterface distinct (unknown $distinct)
Sets SELECT DISTINCT / SELECT ALL flag
public bool getDistinct ()
Returns SELECT DISTINCT / SELECT ALL flag
public Phalcon\Mvc\Model\Query\Builder columns (unknown $columns)
Sets the columns to be queried
<?php
$builder->columns(array('id', 'name'));
public string|array getColumns ()
Return the columns to be queried
public Phalcon\Mvc\Model\Query\Builder from (unknown $models)
Sets the models who makes part of the query
<?php
$builder->from('Robots');
$builder->from(array('Robots', 'RobotsParts'));
public Phalcon\Mvc\Model\Query\Builder addFrom (unknown $model, [unknown $alias])
Add a model to take part of the query
<?php
$builder->addFrom('Robots', 'r');
public string|array getFrom ()
Return the models who makes part of the query
public Phalcon\Mvc\Model\Query\Builder join (unknown $model, [unknown $conditions], [unknown $alias], [unknown $type])
Adds a INNER join to the query
<?php
$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', 'INNER');
public Phalcon\Mvc\Model\Query\Builder innerJoin (unknown $model, [unknown $conditions], [unknown $alias])
Adds a INNER join to the query
<?php
$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 (unknown $model, [unknown $conditions], [unknown $alias])
Adds a LEFT join to the query
<?php
$builder->leftJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
public Phalcon\Mvc\Model\Query\Builder rightJoin (unknown $model, [unknown $conditions], [unknown $alias])
Adds a RIGHT join to the query
<?php
$builder->rightJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
public Phalcon\Mvc\Model\Query\Builder where (unknown $conditions, [unknown $bindParams], [unknown $bindTypes])
Sets the query conditions
<?php
$builder->where(100);
$builder->where('name = "Peter"');
$builder->where('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
public Phalcon\Mvc\Model\Query\Builder andWhere (unknown $conditions, [unknown $bindParams], [unknown $bindTypes])
Appends a condition to the current conditions using a AND operator
<?php
$builder->andWhere('name = "Peter"');
$builder->andWhere('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
public Phalcon\Mvc\Model\Query\Builder orWhere (unknown $conditions, [unknown $bindParams], [unknown $bindTypes])
Appends a condition to the current conditions using a OR operator
<?php
$builder->orWhere('name = "Peter"');
$builder->orWhere('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
public Phalcon\Mvc\Model\Query\Builder betweenWhere (unknown $expr, unknown $minimum, unknown $maximum)
Appends a BETWEEN condition to the current conditions
<?php
$builder->betweenWhere('price', 100.25, 200.50);
public Phalcon\Mvc\Model\Query\Builder notBetweenWhere (unknown $expr, unknown $minimum, unknown $maximum)
Appends a NOT BETWEEN condition to the current conditions
<?php
$builder->notBetweenWhere('price', 100.25, 200.50);
public Phalcon\Mvc\Model\Query\Builder inWhere (unknown $expr, unknown $values)
Appends an IN condition to the current conditions
<?php
$builder->inWhere('id', [1, 2, 3]);
public Phalcon\Mvc\Model\Query\Builder notInWhere (unknown $expr, unknown $values)
Appends a NOT IN condition to the current conditions
<?php
$builder->notInWhere('id', [1, 2, 3]);
public string|array getWhere ()
Return the conditions for the query
public Phalcon\Mvc\Model\Query\Builder orderBy (unknown $orderBy)
Sets a ORDER BY condition clause
<?php
$builder->orderBy('Robots.name');
$builder->orderBy(array('1', 'Robots.name'));
public string|array getOrderBy ()
Returns the set ORDER BY clause
public Phalcon\Mvc\Model\Query\Builder having (unknown $having)
Sets a HAVING condition clause. You need to escape PHQL reserved words using [ and ] delimiters
<?php
$builder->having('SUM(Robots.price) > 0');
public string|array getHaving ()
Return the current having clause
public Phalcon\Mvc\Model\Query\Builder limit (unknown $limit, [unknown $offset])
Sets a LIMIT clause, optionally a offset clause
<?php
$builder->limit(100);
$builder->limit(100, 20);
public string|array getLimit ()
Returns the current LIMIT clause
public Phalcon\Mvc\Model\Query\Builder offset (unknown $offset)
Sets an OFFSET clause
<?php
$builder->offset(30);
public string|array getOffset ()
Returns the current OFFSET clause
public Phalcon\Mvc\Model\Query\Builder groupBy (unknown $group)
Sets a GROUP BY clause
<?php
$builder->groupBy(array('Robots.name'));
public string getGroupBy ()
Returns the GROUP BY clause
public string getPhql ()
Returns a PHQL statement built based on the builder parameters
public Phalcon\Mvc\Model\Query getQuery ()
Returns the query built