public function selectOne(Select $select) { $select->limit(1)->offset(0); $resultSet = $this->tableGateway->selectWith($select->getZendSelect()); $result = $resultSet->toArray(); return isset($result[0]) ? $result[0] : array(); }
/** * @example database::Query::limit * @code * <?php * # cria objeto de consulta * $query = Query::factory(...); * * # coluna que sera agrupada * $query->limit(10, 0); * ?> * @endcode * * {@ineritdoc} * */ public function limit($limit, $offset) { if (NULL == $this->_limit) { $this->_limit = LimitAbstract::factory($this->_driver); $this->_select->limit($this->_limit); } $this->_limit->set($limit, $offset); return $this; }
public function testLimit() { $limit = 123; $table = $this->getMockBuilder(\Sharkodlak\FluentDb\Table::class)->disableOriginalConstructor()->getMock(); $factory = $this->getMockBuilder(\Sharkodlak\FluentDb\Factory\Factory::class)->getMock(); $queryBuilder = $this->getMockBuilder(\Sharkodlak\FluentDb\Query\Builder::class)->setConstructorArgs(['SELECT', 'FROM'])->setMethods(['limit'])->getMock(); $queryBuilder->expects($this->once())->method('limit')->with($this->equalTo($limit)); $factory->expects($this->once())->method('getQueryBuilder')->will($this->returnValue($queryBuilder)); $table->expects($this->once())->method('getFactory')->will($this->returnValue($factory)); $query = new Select($table); $this->assertInstanceOf(Select::class, $query->limit($limit)); }
protected static function getAllOnWhere($table_name, $class, $where = false, $values = false, $order = false, $ask = true, $count = false, $offset = false) { $select = new Select(); $select->from($table_name, "*"); if ($where) { $select->where($where, $values); } if ($order) { $select->order($order, $ask); } else { $select->order("id"); } if ($count) { $select->limit($count, $offset); } $data = self::$db->select($select); return AbstractObjectDB::buildMultiple($class, $data); }
/** * Add limits so we retrieve only relavant rows * * @param Select $select Original select * * @return void */ protected function setLimits($select) { if ($this->_show !== 0) { $select->limit($this->_show); $select->offset(($this->current_page - 1) * $this->_show); } }