*$resultset = $this->modelsManager->createBuilder()
* ->from('Robots')
* ->join('RobotsParts')
* ->limit(20)
* ->orderBy('Robots.name')
* ->getQuery()
* ->execute();
*
*/
class Builder implements \Phalcon\Mvc\Model\Query\BuilderInterface, \Phalcon\DI\InjectionAwareInterface {
protected $_dependencyInjector;
protected $_columns;
protected $_models;
protected $_joins;
protected $_conditions;
protected $_group;
protected $_having;
protected $_order;
protected $_limit;
protected $_offset;
protected $_forUpdate;
protected $_sharedLock;
protected $_bindParams;
protected $_bindTypes;
protected $_hiddenParamNumber;
/**
* \Phalcon\Mvc\Model\Query\Builder constructor
*
*
* $params = array(
* 'models' => array('Users'),
* 'columns' => array('id', 'name', 'status'),
* '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,
*);
*$queryBuilder = new \Phalcon\Mvc\Model\Query\Builder($params);
*
*
* @param array $params
* @param \Phalcon\DI $dependencyInjector
*/
public function __construct($params=null, $dependencyInjector=null){ }
/**
* Sets the DependencyInjector container
*
* @param \Phalcon\DiInterface $dependencyInjector
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function setDI($dependencyInjector){ }
/**
* Returns the DependencyInjector container
*
* @return \Phalcon\DiInterface
*/
public function getDI(){ }
/**
* Sets the columns to be queried
*
*
* $builder->columns(array('id', 'name'));
*
*
* @param string|array $columns
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function columns($columns){ }
/**
* Return the columns to be queried
*
* @return string|array
*/
public function getColumns(){ }
/**
* Sets the models who makes part of the query
*
*
* $builder->from('Robots');
* $builder->from(array('Robots', 'RobotsParts'));
*
*
* @param string|array $models
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function from($models){ }
/**
* Add a model to take part of the query
*
*
* $builder->addFrom('Robots', 'r');
*
*
* @param string $model
* @param string $alias
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function addFrom($model, $alias=null){ }
/**
* Return the models who makes part of the query
*
* @return string|array
*/
public function getFrom(){ }
/**
* Adds a INNER 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');
*
*
* @param string $model
* @param string $conditions
* @param string $alias
* @param string $type
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function join($model, $conditions=null, $alias=null, $type=null){ }
/**
* 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');
* $builder->innerJoin('Robots', 'r.id = RobotsParts.robots_id', 'r', 'LEFT');
*
*
* @param string $model
* @param string $conditions
* @param string $alias
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function innerJoin($model, $conditions=null, $alias=null){ }
/**
* Adds a LEFT join to the query
*
*
* $builder->leftJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
*
*
* @param string $model
* @param string $conditions
* @param string $alias
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function leftJoin($model, $conditions=null, $alias=null){ }
/**
* Adds a RIGHT join to the query
*
*
* $builder->rightJoin('Robots', 'r.id = RobotsParts.robots_id', 'r');
*
*
* @param string $model
* @param string $conditions
* @param string $alias
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function rightJoin($model, $conditions=null, $alias=null){ }
/**
* Sets the query conditions
*
*
* $builder->where('name = "Peter"');
* $builder->where('name = :name: AND id > :id:', array('name' => 'Peter', 'id' => 100));
*
*
* @param string $conditions
* @param array $bindParams
* @param array $bindTypes
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function where($conditions, $bindParams=null, $bindTypes=null){ }
/**
* 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));
*
*
* @param string $conditions
* @param array $bindParams
* @param array $bindTypes
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function andWhere($conditions, $bindParams=null, $bindTypes=null){ }
/**
* 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));
*
*
* @param string $conditions
* @param array $bindParams
* @param array $bindTypes
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function orWhere($conditions, $bindParams=null, $bindTypes=null){ }
/**
* Appends a BETWEEN condition to the current conditions
*
*
* $builder->betweenWhere('price', 100.25, 200.50);
*
*
* @param string $expr
* @param mixed $minimum
* @param mixed $maximum
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function betweenWhere($expr, $minimum, $maximum){ }
/**
* Appends a NOT BETWEEN condition to the current conditions
*
*
* $builder->notBetweenWhere('price', 100.25, 200.50);
*
*
* @param string $expr
* @param mixed $minimum
* @param mixed $maximum
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function notBetweenWhere($expr, $minimum, $maximum){ }
/**
* Appends an IN condition to the current conditions
*
*
* $builder->inWhere('id', [1, 2, 3]);
*
*
* @param string $expr
* @param array $values
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function inWhere($expr, $values){ }
/**
* Appends a NOT IN condition to the current conditions
*
*
* $builder->notInWhere('id', [1, 2, 3]);
*
*
* @param string $expr
* @param array $values
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function notInWhere($expr, $values){ }
/**
* Return the conditions for the query
*
* @return string|array
*/
public function getWhere(){ }
/**
* Sets a ORDER BY condition clause
*
*
* $builder->orderBy('Robots.name');
* $builder->orderBy(array('1', 'Robots.name'));
*
*
* @param string $orderBy
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function orderBy($orderBy){ }
/**
* Returns the set ORDER BY clause
*
* @return string|array
*/
public function getOrderBy(){ }
/**
* Sets a HAVING condition clause. You need to escape PHQL reserved words using [ and ] delimiters
*
*
* $builder->having('SUM(Robots.price) > 0');
*
*
* @param string $having
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function having($having){ }
/**
* Return the current having clause
*
* @return string|array
*/
public function getHaving(){ }
/**
* Sets a LIMIT clause, optionally a offset clause
*
*
* $builder->limit(100);
* $builder->limit(100, 20);
*
*
* @param int $limit
* @param int $offset
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function limit($limit, $offset=null){ }
/**
* Returns the current LIMIT clause
*
* @return string|array
*/
public function getLimit(){ }
/**
* Sets an OFFSET clause
*
*
* $builder->offset(30);
*
*
* @param int $limit
* @param int $offset
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function offset($offset){ }
/**
* Returns the current OFFSET clause
*
* @return string|array
*/
public function getOffset(){ }
/**
* Sets a GROUP BY clause
*
*
* $builder->groupBy(array('Robots.name'));
*
*
* @param string $group
* @return \Phalcon\Mvc\Model\Query\Builder
*/
public function groupBy($group){ }
/**
* Returns the GROUP BY clause
*
* @return string
*/
public function getGroupBy(){ }
/**
* Returns a PHQL statement built based on the builder parameters
*
* @return string
*/
public function getPhql(){ }
/**
* Returns the query built
*
* @return \Phalcon\Mvc\Model\Query
*/
public function getQuery(){ }
}
}