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