diff --git a/laravel/documentation/changes.md b/laravel/documentation/changes.md
index a7c6724e..490fb25d 100644
--- a/laravel/documentation/changes.md
+++ b/laravel/documentation/changes.md
@@ -69,6 +69,7 @@ ## Laravel 3.2
- New, driver based authentication system.
- Added Input::json() method for working with applications using Backbone.js or similar.
- Added Response::json method for creating JSON responses.
+- Added Response::eloquent method for creating Eloquent responses.
## Upgrading From 3.1
diff --git a/laravel/helpers.php b/laravel/helpers.php
index 3e49f047..e4d56b37 100644
--- a/laravel/helpers.php
+++ b/laravel/helpers.php
@@ -245,6 +245,22 @@ function array_pluck($array, $key)
}, $array);
}
+/**
+ * Transform Eloquent models to a JSON object.
+ *
+ * @param Eloquent|array $models
+ * @return object
+ */
+function eloquent_to_json($models)
+{
+ if ($models instanceof Eloquent)
+ {
+ return json_encode($models->to_array());
+ }
+
+ return json_encode(array_map(function($m) { return $m->to_array(); }, $models));
+}
+
/**
* Determine if "Magic Quotes" are enabled on the server.
*
diff --git a/laravel/response.php b/laravel/response.php
index acca8a37..e5472430 100644
--- a/laravel/response.php
+++ b/laravel/response.php
@@ -82,7 +82,7 @@ public static function view($view, $data = array())
* Create a new JSON response.
*
*
- * // Create a response instance with a view
+ * // Create a response instance with JSON
* return Response::json($data, 200, array('header' => 'value'));
*
*
@@ -98,6 +98,26 @@ public static function json($data, $status = 200, $headers = array())
return new static(json_encode($data), $status, $headers);
}
+ /**
+ * Create a new response of JSON'd Eloquent models.
+ *
+ *
+ * // Create a new response instance with Eloquent models
+ * return Response::eloquent($data, 200, array('header' => 'value'));
+ *
+ *
+ * @param Eloquenet|array $data
+ * @param int $status
+ * @param array $headers
+ * @return Response
+ */
+ public static function eloquent($data, $status = 200, $headers = array())
+ {
+ $headers['Content-Type'] = 'application/json';
+
+ return new static(eloquent_to_json($data), $status, $headers);
+ }
+
/**
* Create a new error response instance.
*