Merge pull request #474 from madef/master
[*] Project : Add paging to Collections
This commit is contained in:
@@ -74,6 +74,16 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
||||
* @var int Total of elements for iteration
|
||||
*/
|
||||
protected $total;
|
||||
|
||||
/**
|
||||
* @var int Page number
|
||||
*/
|
||||
protected $page_number = 0;
|
||||
|
||||
/**
|
||||
* @var int Size of a page
|
||||
*/
|
||||
protected $page_size = 0;
|
||||
|
||||
protected $fields = array();
|
||||
protected $alias = array();
|
||||
@@ -334,6 +344,11 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// All limit clause
|
||||
if ($this->page_size)
|
||||
$this->query->limit($this->page_size, $this->page_number * $this->page_size);
|
||||
|
||||
|
||||
// Shall we display query for debug ?
|
||||
if ($display_query)
|
||||
@@ -659,6 +674,34 @@ class CollectionCore implements Iterator, ArrayAccess, Countable
|
||||
}
|
||||
return $this->fields[$field];
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the page number
|
||||
*
|
||||
* @param int $page_number
|
||||
* @return Collection
|
||||
*/
|
||||
public function setPageNumber($page_number)
|
||||
{
|
||||
$page_number = (int)$page_number;
|
||||
if ($page_number > 0)
|
||||
$page_number--;
|
||||
|
||||
$this->page_number = $page_number;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the nuber of item per page
|
||||
*
|
||||
* @param int $page_size
|
||||
* @return Collection
|
||||
*/
|
||||
public function setPageSize($page_size)
|
||||
{
|
||||
$this->page_size = (int)$page_size;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate uniq alias from association name
|
||||
|
||||
Reference in New Issue
Block a user