implements Phalcon\Mvc\Model\Query\BuilderInterface, Phalcon\DI\InjectionAwareInterface
Helps to create PHQL queries using an OO interface
$resultset = $this->modelsManager->createBuilder() ->from('Robots') ->join('RobotsParts') ->limit(20) ->orderBy('Robots.name') ->getQuery() ->execute();
Phalcon\Mvc\Model\Query\Builder constructor
$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);
Sets SELECT DISTINCT / SELECT ALL flag
Returns SELECT DISTINCT / SELECT ALL flag
Sets the DependencyInjector container
Returns the DependencyInjector container
Sets the columns to be queried
$builder->columns(array('id', 'name'));
Return the columns to be queried
Sets the models who makes part of the query
$builder->from('Robots'); $builder->from(array('Robots', 'RobotsParts'));
Add a model to take part of the query
$builder->addFrom('Robots', 'r');
Return the models who makes part of the query
Adds a join to the query
$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');
Adds a INNER join to the query
$builder->innerJoin('Robots'); $builder->innerJoin('Robots', 'r.id = RobotsParts.robots_id'); $builder->innerJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
Adds a LEFT join to the query
$builder->leftJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
Adds a RIGHT join to the query
$builder->rightJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
Sets the query conditions
$builder->where('name = "Peter"'); $builder->where('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
Appends a condition to the current conditions using a AND operator
$builder->andWhere('name = "Peter"'); $builder->andWhere('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
Appends a condition to the current conditions using a OR operator
$builder->orWhere('name = "Peter"'); $builder->orWhere('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
Appends a BETWEEN condition to the current conditions
$builder->betweenWhere('price', 100.25, 200.50);
Appends a NOT BETWEEN condition to the current conditions
$builder->notBetweenWhere('price', 100.25, 200.50);
Appends an IN condition to the current conditions
$builder->inWhere('id', [1, 2, 3]);
Appends a NOT IN condition to the current conditions
$builder->notInWhere('id', [1, 2, 3]);
Return the conditions for the query
Sets a ORDER BY condition clause
$builder->orderBy('Robots.name'); $builder->orderBy(array('1', 'Robots.name'));
Returns the set ORDER BY clause
Sets a HAVING condition clause. You need to escape PHQL reserved words using [ and ] delimiters
$builder->having('SUM(Robots.price) > 0');
Return the current having clause
Sets a LIMIT clause, optionally a offset clause
$builder->limit(100); $builder->limit(100, 20);
Returns the current LIMIT clause
Sets an OFFSET clause
$builder->offset(30);
Returns the current OFFSET clause
Sets a GROUP BY clause
$builder->groupBy(array('Robots.name'));
Returns the GROUP BY clause
Returns a PHQL statement built based on the builder parameters
Returns the query built
© 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