Browse Source

fixed pagination bug affecting postgres.

Taylor Otwell 12 years ago
parent
commit
4ec3f397cf
3 changed files with 17 additions and 4 deletions
  1. 8 0
      changelog.md
  2. 8 3
      laravel/database/query.php
  3. 1 1
      public/index.php

+ 8 - 0
changelog.md

@@ -1,5 +1,13 @@
 # Laravel Change Log
 
+## Version 2.0.5
+
+- Fix: Remove orderings before running pagination queries.
+
+### Upgrading from 2.0.4
+
+- Replace **laravel** directory.
+
 ## Version 2.0.4
 
 - Feature: Added default parameter to File::get method.

+ 8 - 3
laravel/database/query.php

@@ -531,11 +531,16 @@ class Query {
 	 */
 	public function paginate($per_page = 20, $columns = array('*'))
 	{
-		// Calculate the current page for the request. The page number
-		// will be validated and adjusted by the Paginator class,
-		// so we can assume it is valid.
+		// Because some database engines may throw errors if we leave
+		// orderings on the query when retrieving the total number
+		// of records, we will remove all of the ordreings and put
+		// them back on the query after we have the count.
+		list($orderings, $this->orderings) = array($this->orderings, null);
+
 		$page = Paginator::page($total = $this->count(), $per_page);
 
+		$this->orderings = $orderings;
+
 		return Paginator::make($this->for_page($page, $per_page)->get($columns), $total, $per_page);
 	}
 

+ 1 - 1
public/index.php

@@ -3,7 +3,7 @@
  * Laravel - A PHP Framework For Web Artisans
  *
  * @package  Laravel
- * @version  2.0.4
+ * @version  2.0.5
  * @author   Taylor Otwell <taylorotwell@gmail.com>
  * @link     http://laravel.com
  */