From 87166aa0ea3dfec84a1826ef2b2857610bfe33d8 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 17 Aug 2011 09:52:17 -0500 Subject: [PATCH 1/4] Load the exception examiner explicitly instead of using the auto-loader. --- system/laravel.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/laravel.php b/system/laravel.php index 1788a84e..fe03315b 100644 --- a/system/laravel.php +++ b/system/laravel.php @@ -60,6 +60,7 @@ ini_set('display_errors', 'Off'); set_exception_handler(function($e) { require_once SYS_PATH.'exception/handler'.EXT; + require_once SYS_PATH.'exception/examiner'.EXT; Exception\Handler::make($e)->handle(); }); @@ -67,6 +68,7 @@ set_exception_handler(function($e) set_error_handler(function($number, $error, $file, $line) { require_once SYS_PATH.'exception/handler'.EXT; + require_once SYS_PATH.'exception/examiner'.EXT; Exception\Handler::make(new \ErrorException($error, $number, 0, $file, $line))->handle(); }); @@ -76,6 +78,7 @@ register_shutdown_function(function() if ( ! is_null($error = error_get_last())) { require_once SYS_PATH.'exception/handler'.EXT; + require_once SYS_PATH.'exception/examiner'.EXT; extract($error); From c95757175b67c91cfbda638a8255ebadba15baee Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 17 Aug 2011 10:23:54 -0500 Subject: [PATCH 2/4] Make sure file class is loaded before handling exceptions. --- system/laravel.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/laravel.php b/system/laravel.php index fe03315b..b48bb3cc 100644 --- a/system/laravel.php +++ b/system/laravel.php @@ -61,6 +61,7 @@ set_exception_handler(function($e) { require_once SYS_PATH.'exception/handler'.EXT; require_once SYS_PATH.'exception/examiner'.EXT; + require_once SYS_PATH.'file'.EXT; Exception\Handler::make($e)->handle(); }); @@ -69,6 +70,7 @@ set_error_handler(function($number, $error, $file, $line) { require_once SYS_PATH.'exception/handler'.EXT; require_once SYS_PATH.'exception/examiner'.EXT; + require_once SYS_PATH.'file'.EXT; Exception\Handler::make(new \ErrorException($error, $number, 0, $file, $line))->handle(); }); @@ -79,6 +81,7 @@ register_shutdown_function(function() { require_once SYS_PATH.'exception/handler'.EXT; require_once SYS_PATH.'exception/examiner'.EXT; + require_once SYS_PATH.'file'.EXT; extract($error); From 9c9d0fe530e2a029fb259fff2c7fce21149a805f Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 17 Aug 2011 18:32:48 -0500 Subject: [PATCH 3/4] Allow columns to be specified for Eloquent get, first, and paginate. --- system/db/eloquent/model.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/system/db/eloquent/model.php b/system/db/eloquent/model.php index ca0ea554..ea4b61bf 100644 --- a/system/db/eloquent/model.php +++ b/system/db/eloquent/model.php @@ -194,8 +194,10 @@ abstract class Model { * * @return array */ - private function _get() + private function _get($columns = array('*')) { + $this->query->select($columns); + return Hydrator::hydrate($this); } @@ -204,9 +206,9 @@ abstract class Model { * * @return mixed */ - private function _first() + private function _first($columns = array('*')) { - return (count($results = Hydrator::hydrate($this->take(1))) > 0) ? reset($results) : null; + return (count($results = $this->take(1)->_get($columns)) > 0) ? reset($results) : null; } /** @@ -215,7 +217,7 @@ abstract class Model { * @param int $per_page * @return Paginator */ - private function _paginate($per_page = null) + private function _paginate($per_page = null, $columns = array('*')) { $total = $this->query->count(); @@ -224,7 +226,7 @@ abstract class Model { $per_page = (property_exists(get_class($this), 'per_page')) ? static::$per_page : 20; } - return Paginator::make($this->for_page(Paginator::page($total, $per_page), $per_page)->get(), $total, $per_page); + return Paginator::make($this->select($columns)->for_page(Paginator::page($total, $per_page), $per_page)->get(), $total, $per_page); } /** From b3a2c3537abe7fb567791405dd669a3bae71d5e9 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Thu, 18 Aug 2011 12:41:35 -0500 Subject: [PATCH 4/4] Fix white screen of death error when view doesn't exist. --- system/view.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/view.php b/system/view.php index 81f4c426..bac5682b 100644 --- a/system/view.php +++ b/system/view.php @@ -1,4 +1,4 @@ -path.$view.EXT)) { - throw new \Exception("View [$view] does not exist."); + Exception\Handler::make(new Exception("View [$view] does not exist."))->handle(); } foreach ($this->data as &$data)