Skip to content
Snippets Groups Projects
SelectQueryBuilder.php 1.19 KiB
Newer Older
Josh Pollock's avatar
Josh Pollock committed
<?php


namespace calderawp\CalderaFormsQuery\Select;
Josh Pollock's avatar
Josh Pollock committed

Josh Pollock's avatar
Josh Pollock committed
use calderawp\CalderaFormsQuery\CreatesSqlQueries;
Josh Pollock's avatar
Josh Pollock committed
use calderawp\CalderaFormsQuery\MySqlBuilder;
Josh Pollock's avatar
Josh Pollock committed
use calderawp\CalderaFormsQuery\QueryBuilder;
use NilPortugues\Sql\QueryBuilder\Manipulation\AbstractBaseQuery;
use NilPortugues\Sql\QueryBuilder\Manipulation\Delete;
Josh Pollock's avatar
Josh Pollock committed
use NilPortugues\Sql\QueryBuilder\Manipulation\Select;

Josh Pollock's avatar
Josh Pollock committed
abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuery
Josh Pollock's avatar
Josh Pollock committed
{

	/**
	 * @var Select
	 */
Josh Pollock's avatar
Josh Pollock committed
	private $selectQuery;
Josh Pollock's avatar
Josh Pollock committed

	/** @inheritdoc */
Josh Pollock's avatar
Josh Pollock committed
	public function getSelectQuery()
	{
Josh Pollock's avatar
Josh Pollock committed

Josh Pollock's avatar
Josh Pollock committed
		if (empty($this->selectQuery)) {
			$this->selectQuery = new \NilPortugues\Sql\QueryBuilder\Manipulation\Select($this->getTableName());
Josh Pollock's avatar
Josh Pollock committed
		}
Josh Pollock's avatar
Josh Pollock committed
		return $this->selectQuery;
Josh Pollock's avatar
Josh Pollock committed
	}

Josh Pollock's avatar
Josh Pollock committed
	/**
	 * @return Select
	 */
	protected function getCurrentQuery()
Josh Pollock's avatar
Josh Pollock committed
	{
Josh Pollock's avatar
Josh Pollock committed
		return $this->getSelectQuery();
Josh Pollock's avatar
Josh Pollock committed
	}

	/**
	 * @param string $column Column to orderby.
	 * @param bool $ascending Optional. To use ascending order? If false, descending is used. True is the default.
	 * @return $this
	 */
Josh Pollock's avatar
Josh Pollock committed
	public function addOrderBy($column, $ascending = true)
	{
Josh Pollock's avatar
Josh Pollock committed
		$order = $ascending ? self::ASC : self::DESC;
Josh Pollock's avatar
Josh Pollock committed
		$this->getCurrentQuery()->orderBy($column, $order);
Josh Pollock's avatar
Josh Pollock committed
		return $this;
	}
Josh Pollock's avatar
Josh Pollock committed
}